History log of /src/lib/csu/common/crtbegin.c |
Revision | | Date | Author | Comments |
1.17 |
| 28-Dec-2018 |
christos | Undo previous; breaks macppc/m68k (at least)
|
1.16 |
| 28-Dec-2018 |
christos | Avoid duplicate definitions on arm (reported by kre@)
|
1.15 |
| 27-Dec-2018 |
christos | Allow both array and non-array constructors for transition.
|
1.14 |
| 18-Jul-2017 |
joerg | branches: 1.14.4; .eh_frame should be read-only on MIPS too.
|
1.13 |
| 29-Jun-2016 |
joerg | branches: 1.13.8; For some mind-boogling reasons, GCC 5.4 believes that a weak reference cannot alias with an extern. While this is clearly bogus, avoid yet another alias handling bug and use strong aliases. It's actually slightly simpler, too.
|
1.12 |
| 07-Jun-2016 |
joerg | Fun fact of the weak: a weak reference doesn't have visibility attached. As such, reorganize the start/end references to use a weak reference only, if we use it to remove size knowledge. Otherwise use weak external declarations.
|
1.11 |
| 05-Jun-2016 |
joerg | Make older GCC and Clang happy and use weak references to the elements, not declared as arrays.
|
1.10 |
| 01-Jun-2016 |
joerg | PR toolchain/51121: __CTOR_LIST__ and __CTOR_LIST_END__ are logically the same object, but due to the start marker, the former has to be declared as array of fixed size. Newer GCC versions take the liberty of exploiting the UB of accessing global objects past the end to unconditionally load zero values in that case. Two fixes are possible: (1) Pruning via inline assembler as done by GCC's own CRT copy. (2) Pruning via weak references as done for linker sets. Since the second part is known and required to work anyway, prefer this approach. In theory, the labels could be replaced completely, except that GNU as doesn't provide start/end symbols for sections containing dots.
|
1.9 |
| 06-May-2014 |
joerg | branches: 1.9.2; 1.9.6; Make EHABI optional.
|
1.8 |
| 29-Jan-2014 |
bouyer | branches: 1.8.2; Also make sure the __CTOR_LIST__ is just aligned to a pointer boundary. By default, mips N32 will aligned to a 64-bit boundary not 32-bit which causes an extra NULL entry to be added. Fix "segfault on exit" several people have noticed on mips N32, caused by a jr to a NULL address.
|
1.7 |
| 11-Dec-2013 |
matt | Make sure the __CTOR_LIST__ is just aligned to a pointer boundary. By default, mips N32 will aligned to a 64-bit boundary not 32-bit which causes an extra NULL entry to be added.
|
1.6 |
| 29-Nov-2013 |
joerg | Include crtbegin.h first to make it possible to build with the stricter attribute consistency checks in clang.
|
1.5 |
| 26-Aug-2013 |
matt | MIPS wants a read/write eh_frame.
|
1.4 |
| 19-Aug-2013 |
matt | Put the ctors code in .text.startup and dtors code in .text.exit
|
1.3 |
| 27-Jun-2013 |
matt | Switch arm, earm, powerpc to use crtbegin.c Use -fpie for crtbegin.
|
1.2 |
| 24-Jun-2013 |
matt | Make dwarf_eh_object is 8 words long
|
1.1 |
| 22-Jun-2013 |
matt | 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)
|
1.8.2.1 |
| 10-Aug-2014 |
tls | Rebase.
|
1.9.6.2 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.9.6.1 |
| 06-May-2014 |
tls | file crtbegin.c was added on branch tls-maxphys on 2014-08-20 00:02:07 +0000
|
1.9.2.2 |
| 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.9.2.1 |
| 06-May-2014 |
yamt | file crtbegin.c was added on branch yamt-pagecache on 2014-05-22 11:36:44 +0000
|
1.13.8.1 |
| 29-Aug-2017 |
bouyer | Pull up following revision(s) (requested by joerg in ticket #240): external/gpl3/binutils/dist/gas/config/tc-mips.h: revision 1.7 external/gpl3/gcc/dist/gcc/configure: revision 1.16 external/gpl3/gcc/dist/gcc/varasm.c: revision 1.2 external/gpl3/gcc/dist/gcc/varasm.c: revision 1.3 external/gpl3/gcc/dist/gcc/config/mips/netbsd.h: revision 1.10 lib/csu/arch/mips/crtend.S: revision 1.4 share/mk/bsd.own.mk: revision 1.1011 lib/csu/common/crtbegin.c: revision 1.14 external/gpl3/binutils/dist/bfd/elfxx-mips.c: revision 1.11 external/gpl3/gcc/dist/gcc/configure.ac: revision 1.14 external/gpl3/binutils/dist/bfd/elfxx-sparc.c: revision 1.12 external/gpl3/gcc/dist/gcc/config/arm/arm.h: revision 1.14 Create references as absolute pointers internally for .cfi*. Do not warn for anonymous relocations in read-only .eh_frame, they will be turned into relative entries afterwards. A const declaration with explicit section attribute should create a read-only section, whether it is initialized or not. Use read-only .eh_frame. Detect advance_loc support with readelf, not objdump. The latter is broken in some situations before binutils 2.28. .eh_frame should be read-only on MIPS too. Build PIC libs on MIPS and PPC64. While the normal calling convention is position-independent, real PIC defaults to Global Dynamic as TLS model, while non-PIC and PIE code can use more restrictive models like Initial Exec. This is most visible with the thread_local destructor code now using TLS in libc as it would be clobbered by any other shared library with TLS due to static offset assignment by ld. Fix encoding of LSDA entries. .eh_frame references in non-PIC mode can use plain pointers. For PIC, any references to global objects must be indirect, but the .eh_frame entries themselve should be pcrel. One more missing check for DECL_INITIAL being non-NULL. TLS relocations for PIE and non-PIE main executable work the same, so apply the same relaxation rules and the same static binding rules.
|
1.14.4.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|