Home | History | Annotate | Download | only in gen
History log of /src/lib/libc/arch/hppa/gen/swapcontext.S
RevisionDateAuthorComments
 1.8  15-Oct-2020  skrll Remove '_OFFSETOF' prefix for genassm(1) generate CPP identifers for
consistency with other arches.

NFCI and libc.so is the same before and after.
 1.7  05-May-2020  skrll Add a space before any non-nullified instruction. NFCI.
 1.6  19-Feb-2014  skrll Provide a genassym.cf in libc for hppa and use it.
 1.5  12-Sep-2012  manu branches: 1.5.2;
setcontext() used to be incompatible with -lpthread since it affected
the TLS pointer, therefore wrecking the pthread environement.

Some ports had _UC_TLSBASE flag or equivalent (_UC_UNIQUE on alpha)
that controlled whether setcontext() would change the TLS pointer.
This change let libpthread override setcontext() with its own version
that unsets _UC_TLSBASE, enabling safe usage of setcontext() with
-lpthread.

We also have the following required changes here:
- rename alpha's _UC_UNIQUE into _UC_TLSBASE
- add _UC_TLSBASE definition in header file for all ports
(powerpc, sh3, sparc and sparc64 lack the implementation for now)
- introduce a libc stub that can be overriden for setcontext()
- modify MD libcs swapcontext() implementations so that they use the
setcontext() libc stub instead of doing a plain system call.

While we are there:
- document various MD _UC_* flags in header file
- add libc and libpthread tests for swapcontext() behavior
(hopefully helpful to spot MD problems introduced with this change)

Future work:
- Deciding whether kernel support or _UC_TLSBASE should be added for
powerpc, sh3, sparc and sparc64 is left to portmasters
sparc64

Approved by core@
 1.4  28-Apr-2008  martin branches: 1.4.4; 1.4.8;
Remove clause 3 and 4 from TNF licenses
 1.3  18-Nov-2007  skrll branches: 1.3.6;
Remove unused include.

Fix unwind info with S/ENTRY/LEAF_&/
 1.2  28-Oct-2007  skrll Set up the tail of the instruction address queue so that
we don't have to rely on luck for swapcontext(3) to work.

This fixes a problem pointed out to me by Chuck Silvers.
 1.1  18-Jul-2004  chs branches: 1.1.10; 1.1.12; 1.1.16;
add *context and LWP support for hppa. translated from MIPS.
 1.1.16.2  09-Jan-2008  matt sync with HEAD
 1.1.16.1  06-Nov-2007  matt sync with HEAD
 1.1.12.1  06-Jan-2008  wrstuden Catch up to netbsd-4.0 release.
 1.1.10.1  29-Oct-2007  pavel Pull up following revision (requested by skrll in ticket #955):
lib/libc/arch/hppa/gen/swapcontext.S: revision 1.2
Set up the tail of the instruction address queue so that
we don't have to rely on luck for swapcontext(3) to work.
This fixes a problem pointed out to me by Chuck Silvers.
 1.3.6.1  18-May-2008  yamt sync with head.
 1.4.8.2  28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.4.8.1  28-Apr-2008  martin file swapcontext.S was added on branch christos-time_t on 2008-04-28 20:22:57 +0000
 1.4.4.2  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.4.4.1  30-Oct-2012  yamt sync with head
 1.5.2.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.

RSS XML Feed