chs
ddc1ca7bcb
map the data segment with PROT_EXEC since the PLT lives there.
2004-08-07 21:33:04 +00:00
skrll
5e2026a163
Add code code for .init and .fini section fallthroughs and regression
...
test.
2004-05-18 19:19:34 +00:00
skrll
c007da99a0
Update for ELF.
2004-05-17 10:44:22 +00:00
skrll
f01797a30f
Fix typos so that we define _start and __start.
...
The linker script gets the right entry point now.
2004-04-30 08:11:37 +00:00
skrll
337520b409
Include bsd.own.mk before testing MKPIC
2004-03-09 20:04:00 +00:00
simonb
216a472c99
Use -fPIC only if MKPIC isn't "no".
2004-02-14 08:41:58 +00:00
simonb
fb8a44d89d
Don't build lcrt.o (version of crt0.o that looks in /libexec/ for the
...
shared linker) if we have MKPIC=no.
2004-02-14 07:48:37 +00:00
matt
69f9c8b092
Add MD_CALL_STATIC_FUNCTION. This allows crt* to compiled with -g.
2003-12-22 21:05:01 +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
8acea4b2c0
Make {g|s|l}crt0.o depend on crt.o and remove the non-standand .afterdepend
...
translation.
2003-11-11 11:35:03 +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
agc
b2b49933f4
Move Matt Green's code from a 4-clause to a 3-clause licence by removing
...
the advertising clause. Diffs provided in PR 22396 by Joel Baker, the changes
were confirmed to the board by Matt Green.
2003-10-13 14:22:20 +00:00
matt
3e272c0b2a
Deal with the new toolchain.
2003-10-06 05:28:05 +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
uwe
fa9c69303e
Fix previous. s/_start/___start/ in the declaration as well.
2003-07-05 23:50:28 +00:00
marcus
bcd3ee1e02
Provide entry point as both _start and __start, like i386 port does.
2003-07-05 22:51:12 +00:00
thorpej
c2048dc2a3
Don't need sysident.h here anymore; crti provides it.
2003-05-31 19:41:24 +00:00
scw
aa018ec72e
Add a work-around for an SH5 binutils bug which results in bogus
...
GOT offsets in the PIC-compiled crt0 of statically linked binaries.
2003-04-01 10:20:38 +00:00
scw
89380eb358
Add PIC support.
2003-03-24 14:32:57 +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
scw
699eeb228c
The temporary asm trampoline code is no longer needed.
2002-12-06 17:06:06 +00:00
scw
098d74e947
Fix the alignment of the MD_SECTION_PROLOGUE.
2002-12-06 17:05:14 +00:00
thorpej
f343e6c086
If EXTERNAL_TOOLCHAIN is defined, don't build crtbegin/crtend.
2002-11-26 19:27:09 +00:00
thorpej
df201a40b9
Correct a comment.
2002-11-23 17:23:51 +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
bc4956ce1c
Fix the _init and _fini function prologues for ABICALLS. Make sure
...
the functions are aligned to a 32-bit boundary, otherwise some pretty
colorful lossage can result.
2002-11-23 01:44:13 +00:00
thorpej
6a088e4e31
Fix typo.
2002-11-22 16:47:20 +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
itohy
cbb1f0fb0f
MKDYNAMICROOT for a.out
2002-11-12 14:33:48 +00:00
itohy
5b3e8cb3f2
Do not print \0 at the end of error message.
2002-11-12 14:26:10 +00:00
thorpej
303696ca38
Fix signed/unsigned comparison warnings.
2002-11-11 00:44:43 +00:00
grant
291ac7e9c4
don't include machine/asm.h (make this build again).
2002-09-19 01:24: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
matt
b79865a0af
To make things clearer, use register prefixes in asm() code.
2002-07-29 21:54:35 +00:00
scw
c7b95fdc37
Use an assembler trampoline to call the real start entrypoint, at least
...
until we switch to the native toolchain.
2002-07-10 13:13:47 +00:00
scw
59474a8c82
NetBSD, meet the SH-5 cpu.
...
SH-5, meet NetBSD.
Let's hope this is the start of a long and fruitful relationship. :-)
This code, funded by Wasabi Systems, adds initial support for the
Hitachi SuperH(tm) SH-5 cpu architecture to NetBSD.
At the present time, NetBSD/evbsh5 only runs on a SH-5 core simulator
which has no simulated devices other than a simple console. However, it
is good enough to get to the "root device: " prompt.
Device driver support for Real SH-5 Hardware is in place, particularly for
supporting the up-coming Cayman evaluation board, and should be quite
easy to get running when the hardware is available.
There is no in-tree toolchain for this port at this time. Gcc-current has
rudimentary SH-5 support but it is known to be buggy. A working toolchain
was obtained from SuperH to facilitate this port. Gcc-current will be
fixed in due course.
The SH-5 architecture is fully 64-bit capable, although NetBSD/evbsh5 has
currently only been tested in 32-bit mode. It is bi-endian, via a boot-
time option and it also has an "SHcompact" mode in which it will execute
SH-[34] user-land instructions.
For more information on the SH-5, see www.superh.com. Suffice to say it
is *not* just another respin of the SH-[34].
2002-07-05 13:31:28 +00:00
fredette
43c563a3dd
A new crt0.c for hppa, with support for dynamic linking.
2002-07-01 15:56:41 +00:00
matt
0ec15f80cc
Allow this to compile under gcc-current. No multiline strings for asm.
2002-06-09 06:18:34 +00:00
thorpej
8bbbfff0a1
Remove __LEADING_UNDERSCORE case.
2002-06-08 17:27:25 +00:00
fredette
02ac1ae2f0
Added hppa support (some of it incomplete) to lib/csu, lib/libc,
...
and lib/libkvm.
2002-06-06 20:31:19 +00:00
fvdl
e4b98ed506
Add init/fini handling.
2002-06-06 19:18:22 +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
7f350cba6c
Don't use multi-line string literals.
2002-06-05 02:51:03 +00:00
wiz
da0b574ae0
Comment out token after #endif.
2002-05-16 19:30:41 +00:00
matt
858f46fb43
Define _SDA(2)_BASE_ as [] which is more correct.
2002-05-09 20:32:59 +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
wiz
15d53d85be
${MACHINE_ARCH} != "arm32" is always true now, so remove it from an if.
2002-05-02 16:42:53 +00:00
matt
e18dedbd2f
switch from addis R,0,... to the simplified mnemonic of lis which is
...
typically used for this.
2002-04-26 23:28:53 +00:00
kleink
3f1a2352b7
Use __weak_extern() for _SDA_BASE_ and _SDA2_BASE_ declarations.
2002-04-17 17:36:13 +00:00
matt
036d79bb12
Make sure to initialize GPR13/GPR2 appropriately for the Small Data Area
...
pointer as described in the SVR4 PPC ABI. Though GPR2 is defined by the
SVR4 PPC ABI as system-reserved, the EABI (Embedded API) changes its use
to be the Small Data Area 2 register (const small data). Since powerpc
under NetBSD doesn't use R2 in the kernel (yet), support it as well.
2002-04-17 13:32:42 +00:00
skrll
2d0a923dcd
Correct some comments.
2002-04-08 22:17:37 +00:00
jmc
c03ef26393
Don't make ___start static as gcc can't tell it's referenced and complains.
2002-04-04 08:22:11 +00:00
eeh
41065b740e
Don't need start' in crt0.o any more. ld expects
_start' as the entry
...
symbol, while gcc likes `__start'.
2002-03-29 18:11:55 +00:00
matt
0ce5ca145f
Change to use a register prefix.
2002-02-24 01:06:18 +00:00
matthias
21fb786623
Declare the global register variable kps_strings before including anything
...
as this needs to be done before any function is defined (and there seems
to be a function definition in one of the include files).
2002-02-22 13:46:30 +00:00
mrg
829b76292e
fix multiline string literal. from gcc3
2002-02-11 06:08:23 +00:00
thorpej
e4217fbfe4
Pass the rtld object and ps_strings to _start() properly. From Marcus.
2002-02-03 23:57:19 +00:00
thorpej
ec206ac99b
Multi-line string literals are not in ISO-C.
2002-01-23 03:55:33 +00:00
drochner
e757f639d2
don't include <machine/asm.h> to avoid conflicts with definitions
...
in <sys/cdefs.h>
2002-01-14 12:06:49 +00:00
thorpej
fd9112a780
Build and install crtfm.o (sets the Alpha FP_C in a way that GCC's
...
-ffast-math on Alpha expects).
2002-01-14 01:31:58 +00:00
thorpej
24ca47c4d5
* Use the new ALPHA_SET_FP_C sysarch call.
...
* Provide an internal sysarch entry point, so that this works
with statically-linked programs.
2002-01-14 01:31:00 +00:00
thorpej
655925395a
Support for the GCC "-ffast-math" option on the Alpha.
2002-01-13 20:05:42 +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
d605da06f0
%progbits, not @progbits (@ is a comment character in ARM assembly).
2002-01-01 01:36:21 +00:00
thorpej
7050ac9aa9
Multi-line string literals are not supported by ANSI C.
2002-01-01 01:31:06 +00:00
thorpej
5ced70565e
Set ELFSIZE=64.
2002-01-01 01:14:22 +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
thorpej
5b81869561
Don't use multi-line string literals; they're not supported by ANSI C.
2001-12-30 23:23:38 +00:00
bjh21
7723559395
Quiet GCC warnings.
2001-11-08 22:23:59 +00:00
lukem
65469e54b3
pull in ../../Makefile.inc
2001-11-05 15:11:40 +00:00
skrll
6d6c931c5a
This is an a.out thing and doesn't belong here.
2001-10-26 16:05:25 +00:00
scw
f768a5c42b
Reduce the alignment constraint from 4 to 2. This fixes the problem where
...
gas(2) pads the text segment with 0x0 instead of NOP. Since m68k instructions
only need 16-bit alignment, .align 2 works just fine.
2001-10-13 09:21:50 +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
matt
eef4b63246
Make __start global.
2001-09-08 18:59:20 +00:00
bjh21
751e6fa590
Ensure that the stack is aligned to an 8-byte boundary before calling C code.
...
(ATPCS B-01)
2001-08-17 00:14:38 +00:00
simonb
9a68629ca6
Enlarge the stack frame to 16 bytes, and store the return address 8
...
bytes in instead of at the start, to leave room for a .cpload to store
the gp at offset 0 in the frame. Allow 8 bytes for each (for mips64
one day...).
.cpload overwrite problems noted by Michael Hitch.
2001-08-16 03:44:46 +00:00
matt
ee6a16ad18
Add a secondary label called __start (makes gcc 2.95.3 happier) and rename
...
the internal __start to ___start. (Since -e is not supplied by default,
this has no effect on a native build.)
2001-08-05 00:01:27 +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
wiz
e11d04474c
issueing -> issuing
2001-07-26 22:55:12 +00:00
tsubai
1278735b51
.init/.fini support.
2001-07-23 20:43:31 +00:00
bjh21
71d647ec7a
The common arm_elf code seems to work on arm26, so use that.
2001-07-20 13:01:13 +00:00
simonb
19211890ff
Enable dot_init.h on mips, fixing .init & .fini processing.
2001-07-18 04:43:48 +00:00
mrg
6bea810c23
enable dot_init.h on both sparc & sparc64, fixing .init & .fini processing
...
for both platforms. they share dot_init.h with a single #ifdef #define
difference...
2001-07-17 18:25:11 +00:00
simonb
1bc139fd41
Add but not enable correct .init/.fini handling.
2001-07-17 15:20:23 +00:00
mrg
f4bd34ec5f
add but not enable correct .init/.fini handling.
2001-07-17 13:32:35 +00:00
mrg
ff68bb147c
minor KNF
2001-07-17 13:28:05 +00:00
tsubai
4a0b75d5d2
Add the new .init/.fini support.
2001-07-17 12:16:43 +00:00
matt
119c72fb96
Add new init/fini to VAX ELF.
2001-07-17 06:45:46 +00:00
matt
ae9f64ff3b
Turn-on new init/fini processing.
2001-07-17 06:39:14 +00:00