Commit Graph

81 Commits

Author SHA1 Message Date
gmcgarry 3c9a95916d Wrap compiler-specific flags with HAVE_GCC and HAVE_PCC as necessary. Add a few flags for PCC. 2008-08-29 00:02:21 +00:00
lukem ae07e87382 Enable MAKEVERBOSE support. 2008-07-21 15:34:58 +00:00
martin 5d1469bd77 Backout previous: the license sweep touched these files in error, so
restore the old license.
2008-05-10 15:31:03 +00:00
martin ce099b4099 Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
yamt c2ad33834a CLEANFILES=${OBJS} 2007-12-01 11:06:36 +00:00
skrll 795d937239 All platforms are MD_DO_NOT_NEED_FALLTHRU now so no need to keep it
conditional.
2007-05-15 16:51:37 +00:00
simonb 842e180144 Remove the call to init_fallthru/fini_fallthru and call _init/_fini
directly for MIPS.  Making these global to keep gcc4 happy broke gcc3.
Shaves a few instructions off this path as well.

Other arches to follow with similar changes.

With much help from Nick Hudson.
2006-06-30 09:00:46 +00:00
mrg db19e89e04 remove support for building (with) GCC 2.95. also:
- always install <stdbool.h>
- don't generate a fake one for vax / gettext.
2006-06-02 22:16:18 +00:00
christos 351fa65664 Instead of using -I- -I${.CURDIR} and #include "dot_init.h", use:
-I${.CURDIR} and #include <dot_init.h>, since -I- is obsoleted in gcc-4,
and it is too confusing anyway.
2006-05-19 19:11:12 +00:00
christos 96473fa808 change __weak_extern to __weak_reference so that gcc4 works. 2006-05-18 17:54:19 +00:00
christos e08e654f06 Mark _DYNAMIC to have attribute __weakref__, so that gcc-4 does not optimize
&_DYNAMIC == NULL away. From Matt Thomas.
2006-05-17 17:08:07 +00:00
mrg 169832563d with GCC4 we *need* to pass -fno-unit-at-a-time otherwise GCC
reorders things breaking _init() and _fini().

for i386, the {init,fini}_fallthru() functions were being output
_before_ the _init()/ _fini(), and instead of falling through to
the rest of the .init/.fini section, it would fall through to
_init()/_fini() again, and again, and again, until the stack was
exhausted.

now i386 works, but i have not checked that this works for
sparc64 as well.
2006-05-13 01:40:34 +00:00
perry 2d65de2479 bare asm -> __asm 2005-12-24 22:45:33 +00:00
perry 4e11af46bc Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete. 2005-12-24 21:11:15 +00:00
thorpej 70638a64cb Error out if we try to build with GCC 3.3 or later; we should be using
the GCC-supplied crtbegin / crtend in the GCC 3.3 or later case.
2004-08-28 00:19:22 +00:00
thorpej 8d13a4aafe Switch to using GCC's supplied crtbegin / crtend files. 2004-08-28 00:18:38 +00:00
thorpej 68e26dcdb6 _strrchr()'s second argument is actually an int. 2004-08-26 21:01:12 +00:00
thorpej 352bb3a6aa Use ANSI function decls. 2004-08-26 20:57:47 +00:00
thorpej 11b5ec27b8 Remove sysident.h-related comment; that stuff is handled by crti.c these
days.
2004-08-26 20:51:27 +00:00
christos 480316c216 Make sure this still compiles with gcc-2.95. Hello vaxen! 2003-12-03 18:41:35 +00:00
lukem 3921361c6a Use __attribute__((__used__,__noinline__)) (instead of __unused__)
for __do_global_ctors_aux() and __do_global_dtors_aux(),
to fix building with gcc3 -O3.
Discussed with Matt Thomas & Christos Zoulas, and tested on alpha & i386.
2003-12-02 03:01:19 +00:00
fvdl e367e360a4 The x86_64 assembler seems to get it wrong when assembling
_eprol@GOTPCREL, it resolved it internally as a PC-relative instruction,
getting garbage, since the needed value is in the GOT. Add a CPP hook
to export it explicitly, this makes it work. Only active on amd64. XXX
2003-11-28 23:25:54 +00:00
dsl 016359fc65 Make gcrt0.o depend on crt0.o so that it picks up the dependencies from .depend. 2003-11-11 11:32:39 +00:00
fvdl 7e7bcf4bc9 Allow platforms to define __EH_FRAME_CONST. Currently "const" for x86_64,
empty for others. x86_64 (and s390, which we do not have) have .eh_frame
as a read-only section, so __EH_FRAME_BEGIN__ and the register/deregister
functions must take a const foo *.

This also fixes an ICE in gcc 3.3.1 (see gcc PR #9552)
2003-09-07 22:27:54 +00:00
skrll d900731978 Resolve dlsym(3) and friends directly so that dlsym(RTLD_NEXT,...) works.
Previously dlsym resolved to the version in crt0.o or libc which would
mean that the caller's shared object couldn't be determined correctly
using __builtin_return_address(0).

Mainly from FreeBSD, but adapted by me. Benefits of this solutions are:

	- backward comptibility maintained
	- existing broken binaries are fixed with a new ld.elf_so
	- __mainprog_obj can be removed from crt0.o
	- we do the same thing as FreeBSD

Fixes PR 22067.

OKed by Jason and Christos.
2003-08-12 09:18:38 +00:00
salo 99410184e7 netbsd.org->NetBSD.org 2003-07-26 19:24:24 +00:00
thorpej c2048dc2a3 Don't need sysident.h here anymore; crti provides it. 2003-05-31 19:41:24 +00:00
ross 88929ccff1 crt{begin,end}S.o must now depend on the new crt{begin,end}S.c wrappers 2003-03-19 16:54:25 +00:00
ross 520b9c1f59 * remove .ALLSRC, which doesn't work with the new dependency tree
replaced mostly with .IMPSRC, so add .c wrappers for variant .o names

* any machine with a shared crt0.c that also uses common_elf (I didn't see
  any) will now need a reachover wrapper in .CURDIR a la crtbeginS.c

this should fix the build breakage
2003-03-19 04:31:41 +00:00
christos e04b01c9ff Add appropriate SRCS lines so that we actually create dependencies. I've
been running with a crt0.o from last year!
2003-03-18 19:11:57 +00:00
thorpej f343e6c086 If EXTERNAL_TOOLCHAIN is defined, don't build crtbegin/crtend. 2002-11-26 19:27:09 +00:00
thorpej 5df3ea5331 Oops, the _init() and _fini() entry points need to be in the .init
and .fini sections, respectively (same as the {init,fini}_fallthru
stubs).

This is needed on PowerPC, where otherwise the linker would be unhappy
with the relocation records for the fallthru stubs when building a
shared library.
2002-11-23 17:21:22 +00:00
thorpej 6dba3a7439 Split crtbegin/crtend into crti/crtbegin/crtend/crtn. NetBSD-specific
things like the .note.netbsd.ident section are provided by crti/crtn.
crti/crtn also provide the _init() and _fini() routines.

crtbegin/crtend now only provide support for ctors/dtors.  This paves
the way to using the "crtstuff" provided with GCC (when we upgrade to
GCC 3.3), which provides, among other things, much better C++/Java
exception handling.
2002-11-22 06:44:56 +00:00
thorpej 303696ca38 Fix signed/unsigned comparison warnings. 2002-11-11 00:44:43 +00:00
lukem ebb6fc9eb8 Use ${NETBSDSRCDIR}/some/path instead of ${.CURDIR}/../../some/path (etc).
(Reduces make output by ~ 20%)
2002-08-19 09:41:27 +00:00
fvdl e8d64f072a -x is too heavy-handed for removing symbols; newer versions of GNU ld
will completely delete empty local symbols with it. Use -X instead
for crt{begin,end}*.o, to keep init_fallthru hacks.
2002-06-06 19:17:01 +00:00
thorpej 6249662a70 Deal better with platforms that don't yet support shared libraries:
* Only add -fPIC if MKPIC != no.
* Only build crtbeginS and crtendS if MKPIC != no.
2002-05-05 00:45:31 +00:00
thorpej 179139677a All ELF toolchains are of the "new toolchain" variety now, so no need
to conditionalize use of .hidden symbols anymore.
2002-05-05 00:34:00 +00:00
skrll 2d0a923dcd Correct some comments. 2002-04-08 22:17:37 +00:00
thorpej caaec27cfe * Use += to assign OBJS so that machine-dependent Makefiles can
add their own objects to the list.
* Garbage-collect an unneeded CLEANFILES assignment.
2002-01-13 19:59:26 +00:00
thorpej d8abc59932 Add support for invoking GNU C++ local destructors in shared objects
via the __cxa_finalize() mechanism.

XXX Only enabled for new-toolchain platforms, as it requires the assembler
to support the .hidden pseudo-op.
2001-12-31 00:40:11 +00:00
thorpej a50163af65 Build separate crt{begin,end}.o and crt{begin,end}S.o files, rather
than linking them at install time.  Forthcoming changes require different
behavior for static vs. shared object versions of these files.
2001-12-31 00:11:13 +00:00
thorpej c41160abff Add support for registering Java classes emitted by the Java compiler
(e.g. the Java compiler in GCC 3.x) into the ".jcr" section.
2001-12-30 23:45:00 +00:00
thorpej 6027dc5536 Make sure the Dwarf2 EH frame info is 4-byte aligned. 2001-12-30 23:26:20 +00:00
lukem 65469e54b3 pull in ../../Makefile.inc 2001-11-05 15:11:40 +00:00
kristerw 031a62292d Run the entries in __CTOR_LIST__ and __DTOR_LIST__ in the order gcc expect. 2001-10-11 18:02:28 +00:00
thorpej 102df4197d Enable DWARF2 EH support. Confirmed working w/ GCC 2.95.3 on sparc
and i386.
2001-08-03 14:26:13 +00:00
thorpej a6855eea24 Add support for DWARF2 frame unwinding/exception handling. This
should be sufficient for GCC 2.95.3, and probably GCC 3.0 as well.

Not yet enabled by default; further testing required.
2001-08-03 05:54:43 +00:00
mrg ff68bb147c minor KNF 2001-07-17 13:28:05 +00:00
mrg f59b9e737f set FILESDIR to "${LIBDIR}", not hard coded /usr/lib. 2001-06-07 15:22:49 +00:00