Home | History | Annotate | Download | only in common
History log of /src/lib/csu/common/crtbegin.c
RevisionDateAuthorComments
 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

RSS XML Feed