|
Revision tags: release/12.2.0, release/11.4.0, release/12.1.0 |
|
| #
6592a716 |
| 16-Sep-2019 |
Andrew Turner <[email protected]> |
MFC r339738, r339744, r339770, r339773, r339864-r339866, r339907-r339908, r339912-r339913, r339916, r339954, r340213, r340395, r340840, r340910-r340911, r341424, r342773, r342974, r351027, r352073:
MFC r339738, r339744, r339770, r339773, r339864-r339866, r339907-r339908, r339912-r339913, r339916, r339954, r340213, r340395, r340840, r340910-r340911, r341424, r342773, r342974, r351027, r352073:
MFC the BSD crtbegin to stable/12 but keep it disabled.
r339738: Implement a BSD licensed crtbegin/crtend
These are needed for .ctors/.dtors and .jcr handling. The former needs all the function pointers to be called in the correct order from the .init/.fini section. The latter just needs to call a gcj specific function if it exists with a pointer to the start of the .jcr section.
This is currently disabled until __dso_handle support is added.
Reviewed by: emaste Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D17587
r339744: Add a missing include for src.opts.mk. Without it MK_TESTS isn't defined.
MFC with: r339738 Sponsored by: DARPA, AFRL
r339770: Drop the csu tests WARNS to 5 to fix the powerpc64 build.
MFC with: r339738 Sponsored by: DARPA, AFRL
r339773: Add __dso_handle to the BSD crtbegin. This is used to identify shared objects.
MFC with: r339738 Sponsored by: DARPA, AFRL
r339864: Check __dso_handle is NULL in non-DSO objects. It should only be non-NULL when accessed from a shared object.
MFC with: r339738 Sponsored by: DARPA, AFRL
r339865: Include the csu test directories in BSD.tests.dist
MFC with: r339738 Sponsored by: DARPA, AFRL
r339866: Make the .ctors, .dtors, and .jcr markers as static. They shouldn't be accessible from out of the files they are defined in.
MFC with: r339738 Sponsored by: DARPA, AFRL
r339907: The jcr argument to _Jv_RegisterClasses is used, stop marking it otherwise.
MFC with: r339738 Sponsored by: DARPA, AFRL
r339908: Run the csu tests on a DSO. This builds the tests into a shared library, then runs these from the base test programs. With this we can check crtbeginS.o and crtendS.o are working as expected.
MFC with: r339738 Sponsored by: DARPA, AFRL
r339912: Fix the location of the static keyword.
MFC with: r339738 Sponsored by: DARPA, AFRL
r339913: Disable the .preinit_array test in DSOs, ld.bfd fails to link objects with the section.
MFC with: r339738 Sponsored by: DARPA, AFRL
r339916: Build the csu tests on all architectures.
The tests haven't been run them, but this is enough to build them so I can get feedback on if the various crt.h headers are correct.
MFC with: r339738 Sponsored by: DARPA, AFRL
r339954: Add __used to __CTOR_LIST__ and __DTOR_LIST__
Enabling BSD_CRTBEGIN on amd64 resulted in error: unused variable '__CTOR_LIST__'.
__CTOR_LIST__ is indeed unused in crtbegin.c; it marks the beginning of the .ctors array and is used in crtend.c. Annotate __DTOR_LIST__ as well for consistency.
Discussed with: andrew MFC with: r339738 Sponsored by: The FreeBSD Foundation
r340213: Add the (untested) mips and sparc64 .init call sequences.
The BSD crtbegin/crtend code now builds on all architectures, however further work is needed to check if it works correctly.
MFC with: r339738 Sponsored by: DARPA, AFRL
r340395: Run __cxa_finalize in shared objects in the destructor path.
When we have .dtors call them before .dtor handling, otherwise call from a destructor.
PR: 233056 MFC with: r339738 Sponsored by: DARPA, AFRL
r340840: Mark the function called by the MIPS .init/.fini sequence with .local.
As with r328939 we need to mark local symbols as such. Without this the assembly parser treats the symbols as global and created relocations against these private symbols.
MFC with: r339738 Sponsored by: DARPA, AFRL
r340910: Add the missing 0 at the end of the .jcr section.
Without this the dynamic library test was failing as it was calling _Jv_RegisterClasses multiple times.
r340911: Re-enable the dynamiclib tests. These should be fixed by r340910.
r341424: Disable the BSD CRT code on powerpc and sparc64, they need extra crt*.o files that haven't been implemented.
Reported by: sbruno MFC with: r339738 Sponsored by: DARPA, AFRL
r342773: Add explicit csu test dependency
lib/csu/tests/dynamiclib requires libh_csu.so be built first. I'm not sure this is the most correct/best way to address this but it solves the issue in my testing.
PR: 233734 Sponsored by: The FreeBSD Foundation
r342974: Create crtsavres.o for powerpc builds
Summary: GCC expects to link in a crtsavres.o on powerpc platforms. On powerpc64 this is an empty file, but on powerpc and powerpcspe this does contain some save/restore functions, which may not actually be necessary for newer modern GCC and clang. This appeases the in-tree gcc, though, and is needed in order to switch to the BSD CRTRBEGIN.
PR: 233751 Reviewed By: andrew Differential Revision: https://reviews.freebsd.org/D18826
r351027: Enable BSD_CRTBEGIN on powerpc
In r342974 jhibbits added support to build crtsavres.o. This was the blocker for BSD_CRTBEGIN to be enabled there. As such enable this option again.
Reviewed by: jhibbits Sponsored by: DARPA, AFRL
r352073: csu: Add the riscv .init call sequence
Reviewed by: br Sponsored by: Axiado Differential Revision: https://reviews.freebsd.org/D21537
show more ...
|
|
Revision tags: release/11.3.0, release/12.0.0 |
|
| #
bdafb02f |
| 13-Oct-2018 |
Konstantin Belousov <[email protected]> |
Process irelocs for statically linked binaries from crt1 on x86.
This makes statically linked binaries with ifuncs operational.
Reported and tested by: mjg Reviewed by: emaste, markj Sponsored by:
Process irelocs for statically linked binaries from crt1 on x86.
This makes statically linked binaries with ifuncs operational.
Reported and tested by: mjg Reviewed by: emaste, markj Sponsored by: The FreeBSD Foundation Approved by: re (rgrimes) Differential revision: https://reviews.freebsd.org/D17363
show more ...
|
|
Revision tags: release/11.2.0, release/10.4.0, release/11.1.0 |
|
| #
5944f899 |
| 07-Apr-2017 |
John Baldwin <[email protected]> |
Rework r234502 to include a modified CFLAGS along with ACFLAGS.
On most architectures crt objects are compiled in a multiple-step process so that sed can be run on the generated assembly. As the fi
Rework r234502 to include a modified CFLAGS along with ACFLAGS.
On most architectures crt objects are compiled in a multiple-step process so that sed can be run on the generated assembly. As the final step, the C compiler generates an object file from the modified assembly output. Currently this last step uses $CC with only $ACFLAGS. However, for other uses in the tree, $ACFLAGS is meant to include assembly-specific compiler flags that are in addition to $CFLAGS (see default .S.o rules bsd.suffixes.mk). In particular, external toolchains may require additional flags to select a non-default target which will be present in CFLAGS but not ACFLAGS. To support this while still mitigating the issue with CFLAGS described in r234502, include a modified CFLAGS that excludes "-g" when assembling the modified assembly files.
Note that normally an assembler ($AS) is used to assemble .s flags to object files (see bsd.suffixes.mk). However, llvm-based toolchains do not currently have a stand-alone assembler.
Reviewed by: imp Sponsored by: DARPA / AFRL Differential Revision: https://reviews.freebsd.org/D10085
show more ...
|
| #
23f6875a |
| 20-Jan-2017 |
Enji Cooper <[email protected]> |
Use SRCTOP-relative paths and .CURDIR with :H instead of ".." specified paths
This implifies pathing in make/displayed output
MFC after: 3 weeks Sponsored by: Dell EMC Isilon
|
|
Revision tags: release/11.0.1, release/11.0.0, release/10.3.0 |
|
| #
7c6cc9de |
| 21-Sep-2015 |
Bryan Drewery <[email protected]> |
Fix installation of 32bit libraries after r288074.
FILES is not used when LIBRARIES_ONLY is set, which is used to build and install the lib32 sysroot. All of the csu files do quality as "libraries"
Fix installation of 32bit libraries after r288074.
FILES is not used when LIBRARIES_ONLY is set, which is used to build and install the lib32 sysroot. All of the csu files do quality as "libraries" for this case so just undefine LIBRARIES_ONLY.
This is still better than the previous realinstall handling as it does not hook into META_MODE properly.
Sponsored by: EMC / Isilon Storage Division
show more ...
|
| #
5ca34122 |
| 21-Sep-2015 |
Bryan Drewery <[email protected]> |
Replace realinstall: and META_MODE staging hacks with FILES mechanism.
This partially reverts r270170 for lib/csu/i386 while retaining the change for using bsd.lib.mk.
These FILES groups could go i
Replace realinstall: and META_MODE staging hacks with FILES mechanism.
This partially reverts r270170 for lib/csu/i386 while retaining the change for using bsd.lib.mk.
These FILES groups could go into lib/csu/Makefile.inc but I've kept them in the Makefiles for clarity.
Sponsored by: EMC / Isilon Storage Division
show more ...
|
|
Revision tags: release/10.2.0, release/10.1.0, release/9.3.0, release/10.0.0, release/9.2.0, release/8.4.0, release/9.1.0, release/8.3.0, release/7.4.0, release/8.2.0, release/8.1.0, release/7.3.0 |
|
| #
5300f787 |
| 27-Dec-2009 |
Konstantin Belousov <[email protected]> |
MFC r200038: Properly support -fPIE by linking PIE binaries with specially-built Scrt1.o instead of crt1.o, since the later is built as non-PIC.
Separate i386-elf crt1.c into the pure assembler part
MFC r200038: Properly support -fPIE by linking PIE binaries with specially-built Scrt1.o instead of crt1.o, since the later is built as non-PIC.
Separate i386-elf crt1.c into the pure assembler part and C code, supplying all data extracted by assembler stub as explicit parameters. Hide and localize _start1 symbol used as an interface between asm and C code.
show more ...
|
| #
db3212b3 |
| 23-Apr-2012 |
Dimitry Andric <[email protected]> |
Revert r234356 for now, as it leads to run-time problems on 32-bit PowerPC. Note this will break world.
Reported by: andreast Pointy hat to: dim
|
| #
d2cc835c |
| 20-Apr-2012 |
Dimitry Andric <[email protected]> |
After r217375, some startup objects under lib/csu are built in a special way: first they are compiled to assembly, then some sed'ing is done on the assembly, and lastly the assembly is compiled to an
After r217375, some startup objects under lib/csu are built in a special way: first they are compiled to assembly, then some sed'ing is done on the assembly, and lastly the assembly is compiled to an object file.
This last step is done using ${CC}, and not ${AS}, because when the compiler is clang, it outputs directives that are too advanced for our old gas. So we use clang's integrated assembler instead. (When the compiler is gcc, it just calls gas, and nothing is different, except one extra fork.)
However, in the .s to .o rules in lib/csu/$ARCH/Makefile, I still passed CFLAGS to the compiler, instead of ACFLAGS, which are specifically for compiling .s files.
In case you are using '-g' for debug info anywhere in your CFLAGS, it causes the .s files to already contain debug information in the assembly itself. In the next step, the .s files are also compiled using '-g', and if the compiler is clang, it complains: "error: input can't have .file dwarf directives when -g is used to generate dwarf debug info for assembly code".
Fix this by using ${ACFLAGS} for compiling the .s files instead.
Reported by: jasone MFC after: 1 week
show more ...
|
| #
4f78aa47 |
| 16-Apr-2012 |
Dimitry Andric <[email protected]> |
Work around an issue on 32-bit PowerPC, where clang executable can get too big, causing 'relocation truncated to fit' errors at link time.
Reviewed by: nwhitehorn
|
| #
a22748db |
| 11-Mar-2012 |
Konstantin Belousov <[email protected]> |
Stop calling _init/_fini methods from crt1 for dynamic binaries. Do call preinit, init and fini arrays methods from crt1 for static binaries.
Mark new crt1 with FreeBSD-specific ELF note.
Move som
Stop calling _init/_fini methods from crt1 for dynamic binaries. Do call preinit, init and fini arrays methods from crt1 for static binaries.
Mark new crt1 with FreeBSD-specific ELF note.
Move some common crt1 code into new MI file ignore_init.c, to reduce duplication. Also, conservatively adjust nearby sources for style.
Reviewed by: kan Tested by: andrew (arm), flo (sparc64) MFC after: 3 weeks
show more ...
|
| #
9ef4e3af |
| 13-Jan-2011 |
Dimitry Andric <[email protected]> |
Apply a workaround for a binutils issue with the .note.ABI-tag section generated from lib/csu/common/crtbrand.c (which ultimately ends up in executables and shared libraries, via crt1.o, gcrt1.o or S
Apply a workaround for a binutils issue with the .note.ABI-tag section generated from lib/csu/common/crtbrand.c (which ultimately ends up in executables and shared libraries, via crt1.o, gcrt1.o or Scrt1.o).
For all arches except sparc, gcc emits the section directive for the abitag struct in crtbrand.c with a PROGBITS type. However, newer versions of binutils (after 2.16.90) require the section to be of NOTE type, to guarantee that the .note.ABI-tag section correctly ends up in the first page of the final executable.
Unfortunately, there is no clean way to tell gcc to use another section type, so crtbrand.c (or the C files that include it) must be compiled in multiple steps:
- Compile the .c file to a .s file. - Edit the .s file to change the 'progbits' type to 'note', for the section directive that defines the .note.ABI-tag section. - Compile the .s file to an object file.
These steps are done in the invididual Makefiles for each applicable arch.
Reviewed by: kib
show more ...
|
| #
03dab16e |
| 05-Mar-2010 |
Ulrich Spörlein <[email protected]> |
Use default WARNS setting (of 6) for lib/csu.
PR: bin/140089 Reviewed by: jmallett Approved by: ed (co-mentor)
|
| #
c09ba327 |
| 02-Dec-2009 |
Konstantin Belousov <[email protected]> |
Properly support -fPIE by linking PIE binaries with specially-built Scrt1.o instead of crt1.o, since the later is built as non-PIC.
Separate i386-elf crt1.c into the pure assembler part and C code,
Properly support -fPIE by linking PIE binaries with specially-built Scrt1.o instead of crt1.o, since the later is built as non-PIC.
Separate i386-elf crt1.c into the pure assembler part and C code, supplying all data extracted by assembler stub as explicit parameters [1]. Hide and localize _start1 symbol used as an interface between asm and C code.
In collaboration with: kan Inspired by: PR i386/127387 [1] Prodded and tested by: rdivacky [1] MFC after: 3 weeks
show more ...
|
|
Revision tags: release/8.0.0, release/7.2.0, release/7.1.0, release/6.4.0, release/7.0.0, release/6.3.0, release/6.2.0, release/5.5.0, release/6.1.0, release/6.0.0, release/5.4.0, release/4.11.0, release/5.3.0, release/4.10.0, release/5.2.1, release/5.2.0, release/4.9.0, release/5.1.0, release/4.8.0, release/5.0.0, release/4.6.2 |
|
| #
d2893b16 |
| 29-Jul-2002 |
Ruslan Ermilov <[email protected]> |
Drop support for COPY, -c has been the default mode of install(1) for a long time now.
Approved by: bde
|
| #
20200638 |
| 13-May-2002 |
Ruslan Ermilov <[email protected]> |
Fixed CLEANFILES after bsd.lib.mk sweep.
|
| #
7893b524 |
| 13-May-2002 |
Ruslan Ermilov <[email protected]> |
SOBJS are not used here for a long time, and were just pessimising the `install'.
|
| #
2a53f3fb |
| 13-May-2002 |
Ruslan Ermilov <[email protected]> |
Major cleanup of bsd.lib.mk.
Get rid of the INTERNALSTATICLIB knob and just use plain INTERNALLIB. INTERNALLIB now means to build static library only and don't install anything. Added a NOINSTALLLI
Major cleanup of bsd.lib.mk.
Get rid of the INTERNALSTATICLIB knob and just use plain INTERNALLIB. INTERNALLIB now means to build static library only and don't install anything. Added a NOINSTALLLIB knob for libpam/modules. To not build any library at all, just do not set LIB.
show more ...
|
| #
5b8f41af |
| 12-May-2002 |
Ruslan Ermilov <[email protected]> |
Revert the last change. The corresponding bsd.lib.mk changes were already backed out.
|
| #
785b36d4 |
| 11-May-2002 |
David E. O'Brien <[email protected]> |
Use the simpler NOMAN rather than NOMAN, NOPIC, NOPROFILE, INTERNALLIB.
|
| #
4cd01193 |
| 29-Mar-2002 |
Mark Murray <[email protected]> |
Do not use __progname directly (except in [gs]etprogname(3)). Also, make an internal _getprogname() that is used only inside libc. For libc, getprogname(3) is a weak symbol in case a function of the
Do not use __progname directly (except in [gs]etprogname(3)). Also, make an internal _getprogname() that is used only inside libc. For libc, getprogname(3) is a weak symbol in case a function of the same name is defined in userland.
show more ...
|
| #
60ed6ae0 |
| 27-Oct-2001 |
David E. O'Brien <[email protected]> |
Sync with other platforms.
|
|
Revision tags: release/4.3.0 |
|
| #
6e88ecec |
| 04-Jan-2001 |
David E. O'Brien <[email protected]> |
The instructions on doing something with src/lib/csu/powerpc.
|