Commit Graph

643 Commits

Author SHA1 Message Date
matt 36a2626fcd Make sure t9 ($25) is properly set before calling ___start 2013-12-08 06:32:36 +00:00
joerg cd32ef253c Include crtbegin.h first to make it possible to build with the stricter
attribute consistency checks in clang.
2013-11-29 23:00:48 +00:00
martin 44525f39e0 Simplify previous by using CSU_MACHINE_ARCH. Hint from Takeshi Nakayama. 2013-11-17 11:16:09 +00:00
martin 3fb362f863 We do not want to build the code model markes when creating the 32bit
compat libs for sparc64
2013-11-16 10:50:43 +00:00
martin 591a8c0745 On sparc64: create additional "marker" object files, that can be used by the
compiler to encode the used code model in binaries.
2013-11-14 12:19:34 +00:00
joerg f0495d06b6 Explicitly depend on sys/param.h to pick up __NetBSD_Version changes. 2013-11-11 10:24:27 +00:00
uwe f09e72233a Fix previous: use PICFLAGS for crtbeginS.o
Should unbreak sh3 builds.

XXX: PICFLAGS is defined in bsd.lib.mk which lib/csu does not use.
For now supply a local definition.  joerg@, please fix appropriately.
2013-09-18 22:53:39 +00:00
joerg 4d12bfcd15 Pass PICFLAGS down to cc-as-as and use __PIC__ to decide if it is small
vs big PIC mode. Retire -DPIC and -DBIGPIC.
2013-09-12 15:36:14 +00:00
matt 26dbb44c7a Define ELF_NOTE_MARCH_DESC for when running non-eabi in compat_netbsd32 2013-09-10 22:00:01 +00:00
matt 988e1b8be5 MARCH note is conditional 2013-09-10 17:23:55 +00:00
matt b4939ef9a5 Add support for a NetBSD MARCH elf note to record the MACHINE_ARCH for
which a program was compiled.
2013-09-10 16:45:33 +00:00
matt 8c08c8dda2 mips .eh_frame is writable 2013-09-05 00:28:11 +00:00
matt 85b4461aa6 bic sp not allowed in thumb (even with thumb2) 2013-09-05 00:27:38 +00:00
matt 704e1f2829 MIPS wants a read/write eh_frame. 2013-08-26 14:20:53 +00:00
matt e32a84e219 Thumbify 2013-08-21 03:03:02 +00:00
matt c1007461a4 Put the ctors code in .text.startup and dtors code in .text.exit 2013-08-19 22:15:13 +00:00
skrll 9c2d19de03 G/C arm COMPILERCRTSTUFF 2013-08-19 06:56:15 +00:00
matt 64e75f2480 Alpha needs crtfm.o for USE_COMPILERCRTSTUFF=no 2013-08-05 13:38:35 +00:00
skrll 94423bf5d3 G/C old csu stuff for hppa. 2013-08-04 17:35:10 +00:00
martin c5c422fa26 In .fini invoke destructors (fix copy & pasto) 2013-07-27 13:07:06 +00:00
matt fa03729f71 Use jbsr and add END(__start) 2013-07-26 19:49:19 +00:00
martin 6dae3ba8c7 Simplify to new ___start() signature.
Seems to fix PR port-m68k/48076.
2013-07-26 18:47:23 +00:00
matt 2c3a3e1c7e Deal with m68010 not having bsrl so usr jsr on !__pic__ 2013-07-19 06:26:41 +00:00
matt 75eb6b3ee8 Only supplie -fPIE to crtbegin.c if MKPIC is yes. 2013-07-18 18:43:56 +00:00
matt bfbfd7bbc3 s/bsrl/jsr/ and let gas figure it out 2013-07-18 18:43:04 +00:00
martin 3f349243f2 Use -fPIE for crtbegin.o (instead of -fpie).
Fixes linking the firefox js shell. Ok: joerg@
2013-07-17 14:23:45 +00:00
skrll 3aa460b612 Add crtstuff for hppa. Lightly tested. 2013-07-13 18:52:35 +00:00
skrll 9a641fd145 crt0 actually calls ___start 2013-07-13 09:48:26 +00:00
matt 2b0b9e5db4 Use pc-relative branch in crt0.S
Add crtend.S and crtbegin.h (uses pc-relative branches as well).
2013-07-11 17:07:35 +00:00
matt 7d7a3799d0 Add crtstuff for alpha. Compile tested only. 2013-07-11 16:40:27 +00:00
matt 9993694db9 Make this work for N64 as well. 2013-07-11 16:23:40 +00:00
martin 724aa133a7 Add support for sparc and sparc64 2013-07-11 06:57:15 +00:00
matt dfa5980290 Add END(func) so gdb doesn't get so confused. 2013-07-10 23:30:45 +00:00
matt 3e1a908f3c Fix another bneq -> beql botch 2013-07-10 22:55:40 +00:00
matt b32e808ac8 Add a ELFSIZE define 2013-07-10 15:05:46 +00:00
matt cf0e8a20c0 Fix logic inversion. 2013-07-10 14:27:01 +00:00
martin 14d55ae518 Try to also document the variant using common C code - Matt, please review! 2013-07-10 09:41:16 +00:00
martin 36d44ff56f Fix typo 2013-07-10 09:32:49 +00:00
joerg c4d240b19a Only install crtbeginS.o, crtbeginT.o and crtendS.o when MKPIC=yes. 2013-07-05 02:06:49 +00:00
matt 1729cd5b7e For O32, don't save $gp on the stack, save $s0 instead and just keep $gp
in $s0.
2013-06-30 08:00:34 +00:00
matt 350cb9bc6c Switch arm, earm, powerpc to use crtbegin.c
Use -fpie for crtbegin.
2013-06-27 21:24:39 +00:00
matt 2943b5ff66 Add -fPIC to compile of crtbeginS.o 2013-06-27 03:37:21 +00:00
matt 47068b9c70 Deal with O32 callling sequences. 2013-06-25 16:51:14 +00:00
matt 83cc2631c1 Initialize $gp 2013-06-25 16:47:47 +00:00
matt a4bddaaec2 Reorder to avoid !exists
Add a crtbegin.h dependency
2013-06-25 07:18:02 +00:00
matt 86ffe64b94 Use .long not .word
Use _ENTRY
[with these changes, the crtstuff passes its ATF tests.]
2013-06-25 00:30:07 +00:00
matt 611f5afec5 Use (target1) for .init/fini array entries 2013-06-24 20:56:18 +00:00
matt e9cee35b87 Make sure dwarf_eh_object is 8 words long. 2013-06-24 14:53:42 +00:00
matt 08257f91d2 Like the rest, make __DTOR_LIST__ start with a -1
Make sure dwarf_eh_object is 8 words long.
2013-06-24 14:49:55 +00:00
matt 21ba1833d3 Make dwarf_eh_object is 8 words long 2013-06-24 14:49:13 +00:00
joerg 5b92de54be Add some more clues on what is needed to add a new platform. 2013-06-24 14:27:35 +00:00
matt 2ad451b6ca Add a common crtbegin.c file and use a machine dependent crtbegin.h to
fill in .init/.fini.
Add mips support for USE_COMPILERCRTSTUFF=no (compiled only)
2013-06-22 02:37:09 +00:00
matt 6a4f94a035 Allow crtbegin to be a C file. 2013-06-22 02:21:58 +00:00
matt be5ef6fb34 USE_COMPILERCRTSTUFF=no support for vax. 2013-06-21 15:54:08 +00:00
skrll 3defc39379 Whitespace 2013-05-05 10:26:57 +00:00
skrll dd1eb4e21c Simplify. earm is dealt with elsewhere. 2013-04-29 07:21:59 +00:00
matt 0b573b56b6 Make all earm variants use earm. 2013-04-28 06:09:52 +00:00
matt a9585fd0b1 Add support for PREINIT_ARRAY 2013-01-31 22:24:25 +00:00
matt b6b60ee9f3 Use __weakref_visible (from joerg@) 2013-01-28 16:56:39 +00:00
matt 710d6a63da Make with work with gcc 4.5 or clang. 2013-01-28 06:17:57 +00:00
matt 4855f4d98a Handle CPUFLAGS being empty 2013-01-23 02:14:14 +00:00
matt fd98dc9555 Fix static weak (to extern weak) 2013-01-22 22:57:37 +00:00
matt 552187152c If you are using aapcs, you must be using INITFINI 2013-01-22 22:49:09 +00:00
skrll 85b8a2dc6a Whitespace 2012-09-16 13:46:49 +00:00
matt 08072c6632 Fix fini processing. 2012-08-25 15:39:05 +00:00
matt 5147314742 Fix code around __register_frame_info (fixes core dumps) 2012-08-24 16:37:45 +00:00
matt 6456ecbae9 crt* files for ARM EABI. This is pretty different from OABI. crti.S only
has sysident, crtn.S is empty.  True dtor/ctor processing is done elsewhere
(in crt0.o for static or the rtld for dynamic images).  All that is done in
here is either a call to __cxa_finalize (dtor, only when SHARED) or
register_frame_info and _JV_RegisterClasses.
2012-08-13 02:49:04 +00:00
matt 6de169804e Add support for init_array/fini_array (conditionalized on HAVE_INITFINI_ARRAY).
[This is needed for ARM EABI.]
2012-08-13 02:15:35 +00:00
matt 94f921d6a9 Update copyright year. 2012-08-11 07:26:25 +00:00
matt 7f3cb3d165 Replace copyright since it now has new contents 2012-08-11 07:25:44 +00:00
matt dd044a189e Fix typo. 2012-08-11 07:25:13 +00:00
matt c135af1c81 USE_COMPILERCRTSTUFF=no support for arm
This passes all the lib/csu atf tests.
2012-08-11 01:33:36 +00:00
martin 78879908ec Slightly simplify and make position independend.
Part of fixing PR port-sparc64/46724.
2012-08-10 16:37:31 +00:00
martin cb3d712bd2 Make this position independend (for -pie executables) 2012-08-10 12:37:39 +00:00
matt cf510d3400 back out elf note changes since we can use e_flags to determine EABI usage 2012-08-05 01:44:43 +00:00
matt 36e2a4216f Use COPTS instead of CFLAGS
When compiling crti.c and crtn.c, add -DCRTI and -DCRTN, respectively.
2012-08-04 14:59:05 +00:00
matt 910686b1a1 Use CRTI instead of __S 2012-08-04 14:57:46 +00:00
matt f8fa482c66 Emit a note for EABI programs. 2012-08-03 08:01:42 +00:00
joerg c91e3eb75b Unbreak compat. 2012-06-16 19:19:14 +00:00
joerg ee99db43bc Allow USE_COMPILERCRTSTUFF=yes for platforms that use MACHINE_CPU !=
MACHINE_ARCH.
2012-06-16 18:19:39 +00:00
uwe 310c8e11f2 Claim copyright (per Joerg's request). 2012-06-02 22:15:15 +00:00
joerg 0e8643658c Don't pass assembler flags to genassym, it doesn't compile. 2012-03-25 06:55:19 +00:00
joerg 4cd46b4ac8 Add some more __dead as exposed by the recent WARN bumps. 2012-03-22 22:59:43 +00:00
he ff8e71502d Convert to use c89 function declaration. 2012-03-22 13:02:15 +00:00
matt cb0a562de5 Use __UNCONST to unconst a "" 2012-03-21 10:09:20 +00:00
uwe 4d9bf144be Implement crtbegin* for sh3. Tested to work on landisk. 2012-01-31 20:30:15 +00:00
uwe 1415c6da05 New ___start() C function takes 3 arguments instead of 6 and fetches
argc, argv and environ from ps_strings instead.  Adjust the trampoline
accordingly.

Fix brain fart in previous: direct jump is jmp @rN, not bsrf rN.
2012-01-31 20:17:57 +00:00
uwe cd23fa6d26 Use unambiguous .p2align 2 since .align 4 copied from i386 is
incorrect, as .align is .p2align on sh3, not .balign
2012-01-31 20:12:47 +00:00
uwe 5ade3e48ae Move crt0.S in front of crt0-common.c when building crt0.o and gcrt0.o.
Reading disassembly is easier when the asm crt0.S trampoline is at the
start, not hidden behind the C code in crt0-common.c.
2012-01-31 20:08:28 +00:00
uwe 1ecbaba27e Hmm, funny. I wonder why and how did emacs VC managed to add
Warning: Permanently added the RSA host key for IP address '...' to the list of known hosts.

to the committed file. (hi, new cvs!)
2012-01-31 20:03:50 +00:00
uwe cfdbe19d5f Use -DPIC to compile crtbeginS.o since that's what <machine/asm.h>
headers check.
2012-01-31 19:58:22 +00:00
uwe ffe3d8992e Since it's in a separate file now, we cannot use direct branch to label. 2012-01-29 23:27:24 +00:00
uwe 2e92e8630a Steal arch/i386/crtend.S 2012-01-28 15:08:47 +00:00
uwe 002cc93ef2 Add a comment that explains what this code does. 2012-01-28 12:44:19 +00:00
uwe 30250d8bed Asm cosmetic. Add a comment that explains what this trampoline does. 2012-01-28 12:21:13 +00:00
he 281cbfe50c After christos@ latest re-structuring of includes and defines in
the various param.h files, STACKALIGNBYTES is now called STACK_ALIGNBYTES,
so adapt accordingly.
2012-01-25 13:29:58 +00:00
mrg 74c1f8ad71 remove -I- from CPPFLAGS. 2011-10-29 10:28:37 +00:00
matt 0ac54b7e3b Don't include <machine/asm.h> 2011-07-30 15:28:58 +00:00
mrg 7c7bb760e6 revert the previous. it didn't help and wasn't the problem anyway. 2011-07-16 23:07:50 +00:00
matt 9decdbdfe4 Add missing */ 2011-07-04 21:55:09 +00:00