kleink
fc5695807b
Bump _start() alignment to 4 bytes.
1999-08-23 09:10:23 +00:00
matt
741f18b695
Initial VAX ELF32 support (mostly untested). It's checked primarily for
...
testing and archival for now. I don't expect anyone to work with it
since the binutils and gas changes are still pending. But you got to
crawl before you walk.
1999-08-21 19:26:18 +00:00
kleink
b9f86eb3a1
Namespace cleanup: move runtime linker interface into implementation namespace
...
and provide weak aliases.
1999-08-19 20:52:36 +00:00
fvdl
3cf76a4d16
Add _start (as well as __start). It's the default start symbol expected
...
by ld for the i386 ELF case.
1999-07-07 22:59:47 +00:00
simonb
6bf3aa19f9
More trailing white space.
1999-07-02 15:46:05 +00:00
thorpej
3787c5c3d8
MAP_COPY -> MAP_PRIVATE
1999-06-17 21:09:47 +00:00
kleink
196becef81
Declare dlerror()'s return value __aconst.
1999-05-19 14:50:49 +00:00
kleink
28d76befd4
When calling dlerror() in a non-dynamically linked executable, return a pointer
...
to an error string rather than NULL (`no errors occured) to indicate the cause
of failure return values of other dl*() interfaces.
1999-05-19 14:47:12 +00:00
kleink
faa2202a49
Use __weak_extern() instead of an asm statement.
1999-05-02 18:26:43 +00:00
simonb
45c86b888b
Instead of rolling our own "install" target, use FILES/FILESDIR and
...
LINKS to that things like "make install UPDATE=" work properly.
1999-04-03 16:39:31 +00:00
simonb
38ca0e64c8
s;/usr/lib;${LIBDIR};
1999-04-03 16:28:49 +00:00
tsubai
5f1a262044
Fix typo. (COPT --> COPTS)
1999-04-02 12:09:44 +00:00
thorpej
cb3c96c11e
Pull together common Makefile fragments for ELF crt0 files, and use it
...
across the board.
1999-03-20 00:32:40 +00:00
thorpej
0d19945594
Collect the top parts of the ELF crt0.c files into a common header, and
...
use it across the board.
crt0.c now contains stuff that REALLY IS machine-dependent, or stuff that
is completely intermingled in machdep code (and thus can't be separated
easily).
1999-03-20 00:13:51 +00:00
thorpej
0571914c5b
Garbage-collect ECOFF_COMPAT.
1999-03-19 23:55:17 +00:00
thorpej
3f196ccbc8
Put a good chunk of code common to all ELF crt0.c files into a common
...
location, and use it.
1999-03-19 23:34:49 +00:00
thorpej
4216363b47
Move crtbegin.c and crtend.c from alpha subdir to common_elf subdir via
...
repository copy, remove all redundant copies of these files, and make all
ELF platforms use the common versions.
1999-03-19 23:16:15 +00:00
thorpej
d002bd5dc3
Not used.
1999-03-19 23:11:53 +00:00
thorpej
84065de42a
Not used.
1999-03-19 23:00:16 +00:00
thorpej
216dc58aac
Oops, revert previous; thinko.
1999-03-19 22:58:04 +00:00
thorpej
3a25f9286e
Moved via repository copy to common_aout/
1999-03-19 22:56:01 +00:00
thorpej
d72bf587c9
Ajust for new location of a.out crt0 Makefile fragment.
1999-03-19 22:54:40 +00:00
thorpej
e9c1df5e9e
Fix -I path.
1999-03-19 22:50:20 +00:00
thorpej
faaf65e09f
Go ahead and built c++rt0.o on all non-ELF platforms (i.e. including arm32;
...
the hacks to make this work have been committed).
1999-03-19 22:42:16 +00:00
nisimura
00ab30d02b
- Make this compilable.
1999-03-19 01:17:41 +00:00
thorpej
63d06af169
Don't build c++rt.o if ELF.
1999-03-16 23:02:13 +00:00
eeh
3c92d3e233
Make things link correctly again.
1999-03-13 03:42:33 +00:00
kleink
f049fe75cc
Snapshot.
1999-03-08 11:03:43 +00:00
kleink
198e9a2784
s/rtld_setup/_rtld_setup/ to move it out of the user's name space.
1999-03-08 10:49:08 +00:00
tv
907d550100
This needs to use C///, not S///.
1999-02-27 21:13:50 +00:00
tv
803ae8725f
Add c++rt0 for arm32 with the "special" hacks. Put c++rt0.c in arm32's
...
own directory until it is "fixed".
1999-02-27 03:28:30 +00:00
tv
97df55d7ae
Remove -fpic condition for powerpc - we don't build c++rt0 for powerpc,
...
and powerpc has PIC now.
1999-02-27 03:27:54 +00:00
tv
a75b29d92f
Clean up mipse[bl]->mips substitution.
1999-02-27 03:27:01 +00:00
drochner
3654576f9f
make this build again after the mips->mipse? transition
1999-02-24 15:10:16 +00:00
christos
9c7fb208f8
If object_fmt == elf and we have machine_elf, build that one.
1999-02-03 10:55:12 +00:00
christos
b75634107c
Call 1-800-IAMIDIOT... We are not using the local registers...
1999-02-01 12:19:36 +00:00
christos
2dd07da4a9
Elf startup for sparc.
1999-01-31 21:15:31 +00:00
fvdl
b94126e9f9
Change ld_entry handling a bit to make dl*() from init sections work.
1999-01-28 23:59:49 +00:00
mycroft
26c8a9b676
Clean this up a little, and fix the compilation error caused by Manuel's
...
byte-swapping changes.
1999-01-22 11:45:16 +00:00
mycroft
d15c9ceb61
Remove items defined in common.h.
1999-01-22 11:29:16 +00:00
mycroft
1da636920d
Do not build on arm32 by default.
...
This is temporary.
1999-01-21 09:45:28 +00:00
christos
5042017dd3
Remove debugging code and unused variable.
1999-01-11 09:34:17 +00:00
christos
e748cbf6b0
Don't use %eax
1999-01-10 18:20:13 +00:00
christos
c77a99ad05
First pass at csu stuff for i386/elf.
1999-01-10 17:16:06 +00:00
tsubai
51f785d57d
Compile with -fPIC.
1998-11-24 11:16:11 +00:00
jonathan
de51528720
Change __init()/__fini() -> _init()/_fini().
1998-11-04 23:48:25 +00:00
matt
6707a40ca5
Enable shared libraries.
1998-10-31 09:22:29 +00:00
matt
7b9654d095
entry needs to be start, not _start
1998-10-23 00:52:53 +00:00
matt
52ca69699c
Make this work for shared libraries.
1998-10-19 01:37:35 +00:00
matt
11627a3416
Don't write the NUL at the end of string.
1998-10-19 01:35:00 +00:00
mrg
c0ea06b21f
remove MD asm as(1) comments from sysident.h, placing them in a comment
...
above the asm() block. now we can share sysident.h across all ports..
change ld.elf_so to be for $MACHINE == sparc64 not sparc (yet!).
1998-09-13 03:50:31 +00:00
eeh
c4a1bbfedb
This now works, although it does violate the ELF spec.
1998-09-13 01:50:17 +00:00
eeh
7a9702fb39
Fixup startup code.
1998-09-12 16:53:11 +00:00
eeh
07e25081fe
Add sparc64-specific stuff.
1998-09-11 03:36:23 +00:00
pk
015fada66a
Assign my copyrights to TNF.
1998-09-05 13:20:07 +00:00
mycroft
604e247818
Use the count at the beginning of __CTOR_LIST__.
1998-08-05 23:24:02 +00:00
mark
719323a7d4
Rewritten the entry code. Use r10 to determine is r0 contains a valid
...
ps_strings pointer. Use assembly to get argc, argv and argp and then
call __start().
1998-08-05 03:59:43 +00:00
thorpej
4d2424a47a
We need <sys/param.h> because sysident.h requires the `NetBSD' constant.
1998-07-27 21:46:49 +00:00
mycroft
26aa033c98
Adjust some #ifdefs.
1998-07-25 04:59:05 +00:00
mycroft
f5e7ca07dd
These all need types.h.
1998-07-25 04:45:04 +00:00
mycroft
d005dcbce0
Don't pull in param.h (and therefore don't pull in unistd.h).
1998-07-25 04:34:12 +00:00
mycroft
1b12566fa8
Revert previous incorrect change.
1998-07-25 04:23:44 +00:00
veego
833218f8ab
Fix the protoype of __syscall: s/int/quad_t/
1998-07-24 18:48:14 +00:00
kleink
de694bce9c
If the runtime linker does not indicate an error condition, let dlerror()
...
return a null pointer rather than the string returned by strerror(0).
1998-05-30 18:33:43 +00:00
pk
191c543b95
Add `dladdr()' stub.
1998-05-12 21:25:44 +00:00
pk
5de570e329
Include <dlfcn.h> before <link.h>
1998-05-12 21:25:18 +00:00
mrg
f23ec91e29
oops, forgot it add this earlier (pr#5425)
1998-05-09 03:48:37 +00:00
cgd
a21bdbd076
can't include crt.h; it's not gone!
1998-05-06 20:58:34 +00:00
ross
03363828ac
No longer needed, calls begin crtbegin & crtend were just removed.
1998-05-06 20:46:56 +00:00
ross
cbd1bb578a
Sigh, don't make global calls in repeated sharedlib components. It blows
...
away the dynamic loader.
1998-05-06 20:45:54 +00:00
mycroft
8f3189af13
Trivial change.
1998-05-06 09:30:26 +00:00
ross
ab2c05e5a3
Eliminate incorrect gcc-generated cross-section bsr's by calling the static
...
constructor/destructor dispatcher via a function pointer protected from
constant propagation. Also, create (presently unused) .S files that solve
the same problem and in addition allow in-line .init section and .fini
section code. This is too big a mod for a 3.2 pullup, however.
1998-05-06 05:32:08 +00:00
ross
bb44cd0d28
Put the vanilla versions of these into CVS so that Those Who Come Later
...
can see the hand assembly mods in a cvs diff rather than having to start over
from the prototype .c files. (Although these will also be available.)
1998-05-06 00:59:18 +00:00
mrg
2e9c82f79d
build standard NetBSD/ELF crt{begin,end}.o files, clean up some egcs warnings.
1998-05-02 21:26:54 +00:00
matthias
10f833afad
Move rcsid so that executables start with code again (that's just
...
tradition, not really necessary).
1998-04-21 19:53:39 +00:00
cgd
c0ac8bae67
GC alpha's ECOFF_TOOLCHAIN make variable, and related bits. Nobody
...
should be using an ECOFF toolchain on NetBSD/alpha any more.
1998-03-28 00:50:41 +00:00
jtc
6351dbac24
Rename initialization and termination functions from __init() and
...
__fini() to _init() and _fini(). The linker sets the DT_INIT and
DT_FINI .dynamic section entries based on the latter names.
1998-03-27 09:11:33 +00:00
matthias
77aae84af4
Undo last change. Global register variables really have to be declared
...
as register variables...
1998-03-16 22:22:14 +00:00
mark
156a6a5c98
Replace missing ; when calculating the environment pointer.
1998-03-10 22:32:08 +00:00
mycroft
4462053ab3
Fill in missing (default) mmap(2) flags.
1998-02-20 09:27:18 +00:00
thorpej
367b689c8f
typi
1998-02-07 20:44:40 +00:00
perry
43498a0a88
remove obsolete register declarations
1998-02-03 20:01:32 +00:00
pk
49c810b2c8
Avoid spurious calls to foreign constructors/destructors in case the
...
shared library we link with does not have any of its own.
Note: this only works for a.out(5).
1997-12-29 15:36:50 +00:00
lukem
cc8d1d3968
use a common Makefile.csu.aout for the a.out ports
1997-10-27 01:03:39 +00:00
thorpej
07de56201a
Fix think'o in previous.
1997-10-24 21:18:25 +00:00
lukem
fa2de9fb4c
use ${.CURDIR}/${SRCS} instead of ${.ALLSRC} (from i386/Makefile)
1997-10-24 00:35:22 +00:00
christos
88d2078c4f
Revert previous change ${.ALLSRC} will contain .h files etc.
1997-10-23 21:42:54 +00:00
lukem
6bf85c9ba3
* use CPPFLAGS instead of CFLAGS for -D and -I options
...
* use COPTS instead of CFLAGS for -fPIC et al
* use ${COMPILE.c} instead of ${CC} ${CFLAGS} -c
* use FILES and FILESDIR to install pc532 objects (instead of install: rule) -
this makes it consistent with the other a.out ports (arm32, i386, m68k, sparc)
1997-10-22 16:00:39 +00:00
lukem
a60b842a81
use CPPFLAGS instead of CFLAGS
1997-10-21 23:59:18 +00:00
thorpej
977b44de88
Ooops, typo in a comment.
1997-10-20 20:41:09 +00:00
thorpej
6a34a8996c
Add an __RCSID().
1997-10-20 20:40:27 +00:00
thorpej
58ee7fe2a9
Add an __RCSID().
1997-10-20 20:38:24 +00:00
christos
fd2bc36384
Move rcsid[] after the start symbol.
1997-10-20 16:09:27 +00:00
christos
aef9d1ed68
Move rcsid[] after start:, so that start starts at 0.
1997-10-20 16:08:28 +00:00
mycroft
2959c0da1f
Move the RCS id after `start', so that `start' is once again the first thing
...
in the text segment.
1997-10-20 13:49:45 +00:00
jonathan
338a11a3e7
RCSid police. Add __RCSID while we're here.
...
Add alternate label '_start' in front of __start() for installs with
DESTDIR or programs that assume '_start'.
1997-10-20 03:24:49 +00:00
christos
0e6b23ccbf
Put the align directive after .text...
1997-10-15 01:56:55 +00:00
christos
773ab1dd74
Put back __RCSID(): The problem was that if RCSID ended up in the text segment,
...
it was placed before `start', and start ended up misaligned. Add an alignment
directive for the start symbol. Of course ld(1) should not core-dump relocating
misaligned symbols, but this will be fixed shortly.
1997-10-14 17:11:03 +00:00
is
6183998d51
XXX Workaround for the "ld buserr with new crt0.o" problem, suggested by tls.
...
Should be backed out once the real problem has been solved.
1997-10-14 11:45:25 +00:00
mrg
395c20ea27
clean up WARNS on the alpha.
1997-10-10 08:45:29 +00:00
lukem
6fffd559bd
WARNSify (not yet tested on all platforms yet)
1997-10-09 12:29:21 +00:00
lukem
5b0e18c4e4
WARNSify
1997-10-09 07:07:14 +00:00
mark
fffd1f9f6b
Major overhaul and update to support dynamic loading and linking.
1997-10-05 23:12:21 +00:00
mark
8ae060d066
Overhauled and brought up to date.
1997-10-05 23:10:36 +00:00
thorpej
eb382f8e2b
Make sure we're passed a valid obj_entry.
1997-08-24 18:11:23 +00:00
jonathan
a1601b522b
Fix include path: use $(CURDIR). Kindly pointed out by <cgd@pa.dec.com>
1997-06-28 08:21:52 +00:00
jonathan
9b5e38ce15
Un-comment-out "CFLAGS+= -I/usr/src/libexec/ld.elf_so" for new crt0.c
1997-06-24 20:00:45 +00:00
jonathan
f4aee0fcbb
New, Alpha-derived crt0.c with ld.elf_so support.
...
Expects additional register-passed arguments from the kernel on
exec(). If no such args ($a0 is zero), fall back to the old hack of
adjusting the current $sp with a hard-coded frame offset for __start's
local frame(!).
Suggested by Jason Thorpe (thorpej@nas.nasa.gov ), debugged and
stackframe offsets updated by Jonathan Stone.
1997-06-23 22:04:34 +00:00
mikel
9dc08ab2a8
add parens for gcc -Wall
1997-06-19 06:02:06 +00:00
veego
a16ae1d6d0
Use FILES and FILESDIR instead of install:
1997-06-12 12:18:11 +00:00
christos
9a8f6b4e41
Use FILES
1997-06-05 21:30:54 +00:00
cjs
7a66732d34
Back out BUILDDIR and NOINSTALL changes.
1997-05-31 21:21:13 +00:00
veego
4e59f8c226
Remove the install: line and use FILES and FILESDIR.
1997-05-29 15:57:45 +00:00
cjs
5241c2a923
These makefiles need to include bsd.own.mk early-on so that they
...
know BUILDDIR and OBJDIR.
1997-05-29 15:13:00 +00:00
cjs
5fd7ce7066
These updates to the build allow building against include files
...
and libs in the object tree, if you use a separate object tree,
while maintaining backward compatability with other build methods.
See the notes in src/share/mk/bsd.README for full details. Note
that the `make includes' target now only installs the include files
in the build directory (if you use one--otherwise they go in DESTDIR
just like before); `make install' will install include files in
DESTDIR.
1997-05-26 03:55:19 +00:00
phil
ae7e730366
Force the link.
1997-05-19 23:24:21 +00:00
mycroft
eaaacab9dc
__ps_strings is initialized to 0.
1997-05-17 16:19:49 +00:00
phil
10a830a931
Add to install to link scrt0.o to crt0.o.
1997-05-15 15:56:08 +00:00
mycroft
cc4a1553a1
Eliminate bogus redefinitions of standard targets.
1997-05-09 07:50:03 +00:00
thorpej
489b4a686e
Fat-finger; one too many "_"'s in the entry point declaration.
1997-04-17 06:11:55 +00:00
thorpej
d5e51dc9c2
Correct a bogus comment, pointed out by Chris Demetriou <cgd@netbsd.org>
1997-04-16 20:53:15 +00:00
thorpej
406317dd8f
Fix a couple of things pointed out by Chris Demetriou <cgd@netbsd.org>:
...
- fix _DYNAMIC definition bogon
- add the ECOFF_COMPAT #ifdef's to make diffing with other ports that
use this code base easier
1997-04-16 20:50:46 +00:00
thorpej
ff5a472ce7
NetBSD/powerpc doesn't use the "generic" c++rt0.o
1997-04-16 19:43:53 +00:00
thorpej
062ebf7414
C run-time startup routines, based on NetBSD/alpha's, with modifications
...
for NetBSD/powerpc by me.
1997-04-16 19:38:22 +00:00
christos
8259dd08d6
Makefile cleanups:
...
use INCS variable to install includes and FILES to install objects.
1997-03-24 22:11:48 +00:00
cgd
5e25db4c59
pull in the sysident.h from ld.so, for NetBSD PT_NOTE generation
1997-03-21 05:47:28 +00:00
cgd
b3860e1660
fix _DYNAMIC definition bogon
1997-03-10 23:17:10 +00:00
cgd
78b14cccb3
s/mainprog_obj/__&/
1997-03-10 23:13:31 +00:00
cgd
46db752aef
fix include path bogosity pointed out by Greg Oster
1997-03-09 04:49:06 +00:00
jonathan
2ba4510cdc
C versions of crt0 for mips.
1997-03-05 03:45:05 +00:00
explorer
6c8b64fd26
Someone forgot a line continuation character
1997-02-23 21:40:09 +00:00
cgd
3192bd314f
turn Alpha's ELF_TOOLCHAIN checks to ECOFF_TOOLCHAIN checks
1997-02-23 20:42:24 +00:00
cgd
bb52eeac41
build with -fPIC
1997-02-17 19:22:32 +00:00
cgd
4754bd637b
make hard links from crt{begin,end}.o to crd{begin,end}S.o
1997-02-17 19:17:18 +00:00
scottr
372fe2ff92
Catch up with const changes to dlopen() and dlsym() prototypes in
...
<dlfcn.h>. Tested on i386 and hp300 for crt0.o and ld.so, verified
other references by inspection.
1997-01-03 22:37:58 +00:00
cgd
d71a874906
const-ify char *'s that need it
1997-01-03 18:23:41 +00:00
pk
f2eb968909
asm => __asm__, and garbage collect a bit.
1996-12-27 21:44:59 +00:00
matthias
2793a4050c
* Set __ps_strings + some code cleanup.
1996-12-27 08:30:13 +00:00
cgd
13d2436889
include dlfcn.h for exported dynamic loader function prototypes.
1996-12-18 22:25:09 +00:00
cgd
84e780e7f0
-I expected location of ELF shared loader
1996-12-14 06:03:14 +00:00
thorpej
f6a53d4680
Sync with the i386 crt0.c
1996-12-08 00:39:42 +00:00
pk
a7bb9f2ea8
Set __ps_strings which is passed in register %g1.
1996-12-07 23:47:40 +00:00
mycroft
f7bc1cda35
Tiny optimization in __syscall.
1996-12-07 23:31:07 +00:00
mycroft
e8770b9c15
Oops; don't need sys/syscall.h.
1996-12-07 23:00:20 +00:00
mycroft
a54c49b343
Set __ps_strings at startup. Move the argv/envp setup into a short assembler
...
prologue. General cleanup.
1996-12-07 22:34:09 +00:00
mycroft
e1af33609a
Add a __ps_strings variable here, initialized to 0.
1996-12-07 22:31:25 +00:00
cgd
6da04f404e
expect a 'struct ps_strings *' as the fourth argument to __start.
...
If it's there, i.e. doesn't have a value known to be emitted by kernels
which didn't include support for passing it (0 or 0xbabefacedeadbeef),
set __ps_strings to it. Otherwise, use the old 'normal' PS_STRINGS value
for __ps_strings.
1996-12-07 20:04:38 +00:00
ws
2aa55c5a2b
NetBSD/powerpc doesn't support (yet?) -fpic
1996-11-03 18:12:00 +00:00
thorpej
5042faf816
RCS id police.
1996-10-18 05:36:42 +00:00
thorpej
25f2d6465d
Use ${INSTALL}.
1996-10-18 05:27:38 +00:00