Commit Graph

296 Commits

Author SHA1 Message Date
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
cgd 53ded8ebcb add a hack so that old- and new-toolchain alphas do the right thing:
include bsd.own.mk early on, and if !alpha or if !ELF_TOOLCHAIN,
build c++rt0.o.  ELF alphas don't use the 'normal' C++ runtime startup
routines.  Eventually, there should be better ways to distinguish what
toolchain and object format is in use, and the Alpha C++ startup code
changes should be merged with that used by the other ports.
1996-10-08 00:36:28 +00:00
cgd c7a4944620 update so this compiles with the latest ELF ld.so. Include bsd.own.mk
at the top, for ELF_TOOLCHAIN definition, so this can be better
conditionalized for new/old toolchains.
1996-10-08 00:29:48 +00:00
cgd cccb7a88b4 Reimplement in C, adding ELF support. if compiled with -DECOFF_COMPAT
(currently the default), then it compiles on both an ECOFF toolchain
and on an ELF toolchain (but w/o support for dynamic linking or C++
constructors & destructors).  If compiled without -DECOFF_COMPAT, it
supports statically- or dynamically-linked ELF binaries (and shared
libraries).
1996-09-12 16:59:01 +00:00
cgd 44279d38cb user better local labels, be smarter with noat and use of the at register.
Suggested by Matt Thomas.
1996-09-09 01:03:38 +00:00
cgd 6f5a87ec6c remove a few macro definitions which duplicate (and in one instance,
conflict with) those in <machine/asm.h>.
1996-05-16 21:56:22 +00:00
mark cd2d3b3a65 Initial commit of the crt0.o source for the arm32 port. 1996-02-02 16:23:16 +00:00
cgd 3601644b3c limit the flags that get passed to cpp 1995-12-20 12:36:56 +00:00
ragge f1aad3abcc Really needed files, forgot them in -current after 1.1. 1995-12-12 08:04:47 +00:00
cgd 2a3b48cdaf CFLAGS+=, not CFLAGS= 1995-12-12 01:53:50 +00:00
cgd c948e0646d profiling support 1995-11-04 00:30:50 +00:00
cgd 28426ef703 fix up a bit of profiling support 1995-10-29 19:54:15 +00:00
cgd 1162a1d4ff kill OSF/1 assembler support, and make gcrt0.o link (but not work). 1995-10-09 23:54:37 +00:00
pk a9c6e6dfa1 Make `make depend' work. For this, it was necessary to remove ${.ALLSRC}
from the build rules; it has been replaced with `${.CURDIR}/${SRCS}'.
Also, avoid "a.out" like <mk/bsd.lib.mk>.
1995-09-29 11:23:15 +00:00
pk dae6393cae atexit() cannot reliably be used in this context. Introduce `.fini' which
is called from rtld through _dlexit() or when this object is unloaded
(from Doug Rabson).
1995-09-23 22:38:22 +00:00
pk 3994f31209 Activate interface version 4: call dlexit() at exit. 1995-09-23 22:34:20 +00:00
mellon af776e8143 Correctly build gcrt0.o 1995-06-15 21:59:25 +00:00
mellon 0cfebbe02b start -> __start in END macro as well 1995-06-15 21:58:44 +00:00
mellon 96ba717024 start -> __start to avoid namespace bugs 1995-06-15 21:56:58 +00:00
pk ef3ad469b6 Private strrchr() not needed for scrt0.o 1995-06-15 21:41:41 +00:00
pk f087571372 First arg. of syscall2() is a quad_t. 1995-06-06 09:04:51 +00:00
pk 69ae425298 Build run-time code for use in static executables, called `scrt0.o'. 1995-06-05 01:57:04 +00:00
pk 275fc2ee0d #include <dlfcn.h>, and <string.h> too. 1995-06-05 00:13:05 +00:00
pk 25b9fa86e4 one more prototype 1995-06-05 00:10:44 +00:00
pk 6226310a31 add dlerror() stub 1995-06-04 23:29:14 +00:00
pk 846beea318 Factor out common code. 1995-06-03 13:16:03 +00:00
pk c64cecc457 Protoize (from Thorsten Lockert, PR #1070).
Some other cleanup.
1995-06-02 21:30:47 +00:00
pk fd77fcfc4c Make this compile warning-free (from Thorsten Lockert, PR 1071). 1995-06-02 15:55:27 +00:00
phil f722fd7346 Update to -DDYNAMIC as I thought I had a long time ago. 1995-05-29 06:18:12 +00:00
mycroft 6ee8835631 Keep argv[0] in a register. 1995-05-17 15:55:26 +00:00
mycroft 3ad209c804 Calculate environ directly from argc and argv, rather than searcing down
the argument list.
1995-05-16 16:25:04 +00:00
mellon 139d140728 Ensure that __progname is in .data, not in .sdata 1995-05-03 22:13:15 +00:00
mycroft 4c34be6b52 Clean up deleted files. 1995-03-01 00:00:00 +00:00
cgd 9fac9bc0af initial alpha support. no profiling support. 1995-02-10 17:53:00 +00:00
mycroft d11034718e Don't map the data segment with PROT_EXEC. 1995-01-17 06:10:31 +00:00
mycroft 6d9a99f698 Use the new syscall method. 1995-01-17 06:09:43 +00:00
mycroft fb7161aa7e Use ${COMPILE.S}, not ${CPP} directly. 1995-01-07 23:21:41 +00:00
mycroft 3dbc1e9443 Patch from Giles Lean to make compilation flags more consistent. 1995-01-07 23:07:03 +00:00
mycroft d8f841190c .s -> .S 1994-12-16 10:01:23 +00:00
mycroft c32023e792 More underscores... 1994-12-15 17:02:08 +00:00
dean add2031dcf Prepended underscores 1994-11-14 23:33:46 +00:00
mycroft f3a089395b Kill historical cruft. 1994-07-31 19:57:46 +00:00
pk 63027d510b `LDSO' is for debugging only. 1994-07-26 19:53:46 +00:00
phil f4bddced4a update mmap call. 1994-06-09 05:50:34 +00:00
glass f518ec51c9 crt0 support for mips..no shared library support 1994-05-24 07:33:47 +00:00
mycroft 93ac2f912e Clean up deleted files. 1994-05-14 06:33:26 +00:00
cgd 0c3c9c68ab kill all gprof-related stuff; it's now in libc, and the header is elsewhere 1994-05-14 06:33:22 +00:00
mycroft 91cd8bafa5 Clean up deleted files. 1994-05-14 06:33:20 +00:00
cgd 8cb13545d3 kill all gprof-related stuff; it's now in libc, and the header is elsewhere 1994-05-14 06:33:17 +00:00
mycroft 9177dd175a Clean up deleted files. 1994-05-14 06:33:16 +00:00
cgd bc03451854 kill all gprof-related stuff; it's now in libc, and the header is elsewhere 1994-05-14 06:33:14 +00:00
mycroft 49f9da4a97 Clean up deleted files. 1994-05-14 06:33:11 +00:00
cgd b22a4fbae6 kill all gprof-related stuff; it's now in libc, and the header is elsewhere 1994-05-14 06:33:05 +00:00
phil 9d4fe61ad7 changes to support shared libs. 1994-05-03 07:35:28 +00:00
pk ae9be14d68 Fix that SYS___syscall business. 1994-04-18 20:02:58 +00:00
cgd 79b8b4562d new way of invoking mmap. 1994-04-05 02:26:13 +00:00
cgd 00ae28f054 explicit cast off mmap offset to off_t 1994-03-28 05:26:00 +00:00
cgd 95d6a185be no more MAP_FILE 1994-03-28 02:07:04 +00:00
pk fa491c1bc9 Remove some leftover SunOS dialect. 1994-03-10 21:09:49 +00:00
pk 140eeb543a Use atexit(), not on_exit(). 1994-03-10 21:02:01 +00:00
pk 8aee50b714 add -DDYNAMIC 1994-03-03 14:27:34 +00:00