Age | Commit message (Collapse) | Author |
|
be a section which code stubs (branches) can be added to initialize/destructor
This adds MD stubs to allow this to operate as expected. should fix wine
and behave according to ELF specs. ok miod@
|
|
|
|
to build startup code the same on all (ELF) archs. hppa ok mickey@
|
|
does not make propolice reporting ineffective; millert miod ok
|
|
_progname storage into data instead of stack.
|
|
versions of these files.
Fixed a bug in ld.so in this, instead of scheduling the fini of each of
the shared libraries with atexit. schedule a function of ld.so itself
and it will walk all of the open libraries when the program exits.
otherwise a shared library could be dl_open()ed and then dl_close()d
and then it would not be mapped for the atexit processing.
TODO:
What if atexit is not found (process did not link against libc?)
Do shared libraries that are dl_closed have their global destructors run?
|
|
path of least surprise. Ok millert@
|
|
manner. the linker knows about the magic function _init and _fini
and will create a .dynamic tag to point to those symbols in the
executable/shared libraries. Take advantage of that fact to allow
ld.so to easily find the appropriate ctors/dtors calls for shared libraries
Since the crtbeginS.c now contains executable code, it must be compiled
with -fPIC. Rename the __init and __fini functions to _init/_fini so
the linker will locate them.
|
|
also scrt does not support c++ ctors/dtors thus does not require
crtbegin.o/crtend.o which it normally does.
|
|
have constructors and destructors.
|
|
|
|
with the "C" function start();
|
|
if the register being loaded into was not value zero would end up
with wrong value. Only affected profiling executables.
|
|
are cleanup that would not work correctly with the newer version. works
fine with the current (old) version of gas/ld.
ALSO:
Found a very long outstanding bug on the powerpc port. whenever
nroff was run, say during a build, it would complain about memory being
freed twice. Found the cause of this was that *roff which is written in
C++ was using globals that had constructors/destructors and due to a
bug in the crt code, the destructors were getting called when a program
exited via falling out of the main loop. calling exit directly would
not exersize the bug that ran the destructors twice. THIS BUG IS NOW FIXED.
|
|
|
|
This fixes namespace problems where STRIP is sometimes used as
the name of the strip(1) to use and other times used as
the flag to send install(1) when stripping (or not).
COPY doesn't have this problem (yet) but was poorly named.
|
|
NOTE: This will not work until the other pieces are checked in.
This is primarily the NetBSD powerpc port, with modifications
to support ELF.
A change needs to be made to one of the bsd.*.mk files to support
DESTDIR compilation with the crtbegin and crtend files.
|