<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/gnu/lib/csu, branch releng/12.4</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=releng%2F12.4</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=releng%2F12.4'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2019-09-16T13:41:24Z</updated>
<entry>
<title>MFC r339738, r339744, r339770, r339773, r339864-r339866, r339907-r339908, r339912-r339913, r339916, r339954, r340213, r340395, r340840, r340910-r340911, r341424, r342773, r342974, r351027, r352073:</title>
<updated>2019-09-16T13:41:24Z</updated>
<author>
<name>Andrew Turner</name>
<email>andrew@FreeBSD.org</email>
</author>
<published>2019-09-16T13:41:24Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=6592a716f6050bcec9cc479a32d0824f4cc71bf7'/>
<id>urn:sha1:6592a716f6050bcec9cc479a32d0824f4cc71bf7</id>
<content type='text'>
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
</content>
</entry>
<entry>
<title>Convert gnu to using SRCTOP</title>
<updated>2017-03-12T18:59:16Z</updated>
<author>
<name>Warner Losh</name>
<email>imp@FreeBSD.org</email>
</author>
<published>2017-03-12T18:59:16Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=ffec31518362596811966085741c2d1bec930572'/>
<id>urn:sha1:ffec31518362596811966085741c2d1bec930572</id>
<content type='text'>
Prefer SRCTOP over CURDIR/../../contrib, etc. However, retain the "up
one level" instances of ../ because they are really relative to this
part of the tree and not a means to find the root of the tree. As
such, it's better to leave them since that further the goal of being
able to move directories if watned to in the future.

Differential Revision:	https://reviews.freebsd.org/D9932
Sponsored by:		Netflix
Silence	On:		arch@ (twice)
</content>
</entry>
<entry>
<title>Follow-up r297842: Rework header generation to fix always rebuilding.</title>
<updated>2016-04-18T18:13:58Z</updated>
<author>
<name>Bryan Drewery</name>
<email>bdrewery@FreeBSD.org</email>
</author>
<published>2016-04-18T18:13:58Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=09fb6bff2962238c21d263adf9449a4af6ef3d63'/>
<id>urn:sha1:09fb6bff2962238c21d263adf9449a4af6ef3d63</id>
<content type='text'>
This reworks the handling of common headers to just include the needed
logic rather than invoke MAKE.  This avoids the problem listed in r297842
and avoids other dependency tracking issues.

Pointyhat to:	bdrewery
Reported by:	Nikolai Lifanov &lt;lifanov@mail.lifanov.com&gt;
Sponsored by:	EMC / Isilon Storage Division
</content>
</entry>
<entry>
<title>META_MODE: Avoid changed build command every build.</title>
<updated>2016-04-12T02:45:19Z</updated>
<author>
<name>Bryan Drewery</name>
<email>bdrewery@FreeBSD.org</email>
</author>
<published>2016-04-12T02:45:19Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=8a5f4396775074170d5c509be438d72ef266d0bd'/>
<id>urn:sha1:8a5f4396775074170d5c509be438d72ef266d0bd</id>
<content type='text'>
Because the file is generated with -f using another Makefile, 2
different Makefiles are trying to handle the .meta file for the
target.  The obvious .NOMETA_CMP or .NOMETA on the ${MAKE} targets
don't work as they are very limited in scope in bmake.  Using
.PHONY fixes the problem and ensures that the ${MAKE} command
is always ran to check if it is outdated in the sub-make.

An example of the problem in gnu/lib/libgcc (with make -dM):
  /usr/obj/root/git/freebsd/gnu/lib/libgcc/tm.h.meta: 2: a build command has changed
  TARGET_CPU_DEFAULT=""  HEADERS="options.h i386/biarch64.h i386/i386.h i386/unix.h i386/att.h dbxelf.h elfos-undef.h elfos.h freebsd-native.h freebsd-spec.h freebsd.h i386/x86-64.h i386/freebsd.h i386/freebsd64.h defaults.h"  DEFINES=""  /bin/sh /root/git/freebsd/gnu/lib/libgcc/../../../contrib/gcc/mkconfig.sh tm.h
  vs
  (cd /root/git/freebsd/gnu/lib/libgcc; make -f /root/git/freebsd/gnu/lib/libgcc/../../usr.bin/cc/cc_tools/Makefile MFILE=/root/git/freebsd/gnu/lib/libgcc/../../usr.bin/cc/cc_tools/Makefile GCCDIR=/root/git/freebsd/gnu/lib/libgcc/../../../contrib/gcc tm.h)
  Skipping meta for tm.h: .NOMETA
  (cd /root/git/freebsd/gnu/lib/libgcc; make -f /root/git/freebsd/gnu/lib/libgcc/../../usr.bin/cc/cc_tools/Makefile MFILE=/root/git/freebsd/gnu/lib/libgcc/../../usr.bin/cc/cc_tools/Makefile GCCDIR=/root/git/freebsd/gnu/lib/libgcc/../../../contrib/gcc tm.h)
  `tm.h' is up to date.

Sponsored by:	EMC / Isilon Storage Division
</content>
</entry>
<entry>
<title>Remove the old depend (mkdep) code and make FAST_DEPEND the one true way.</title>
<updated>2016-03-30T23:50:23Z</updated>
<author>
<name>Bryan Drewery</name>
<email>bdrewery@FreeBSD.org</email>
</author>
<published>2016-03-30T23:50:23Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=497e80911e0033a44f608c5c912024997ffb5d3c'/>
<id>urn:sha1:497e80911e0033a44f608c5c912024997ffb5d3c</id>
<content type='text'>
Reviewed by:	emaste, hselasky (partial), brooks (brief)
Discussed on:	arch@
Sponsored by:	EMC / Isilon Storage Division
Differential Revision:	https://reviews.freebsd.org/D5742
</content>
</entry>
<entry>
<title>DIRDEPS_BUILD: Regenerate without local dependencies.</title>
<updated>2016-02-24T17:20:11Z</updated>
<author>
<name>Bryan Drewery</name>
<email>bdrewery@FreeBSD.org</email>
</author>
<published>2016-02-24T17:20:11Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=bd18fd57db1df29da1a3adf94d47924a977a29c2'/>
<id>urn:sha1:bd18fd57db1df29da1a3adf94d47924a977a29c2</id>
<content type='text'>
These are no longer needed after the recent 'beforebuild: depend' changes
and hooking DIRDEPS_BUILD into a subset of FAST_DEPEND which supports
skipping 'make depend'.

Sponsored by:	EMC / Isilon Storage Division
</content>
</entry>
<entry>
<title>Remove redundant .NOPATH.</title>
<updated>2015-09-26T14:15:01Z</updated>
<author>
<name>Bryan Drewery</name>
<email>bdrewery@FreeBSD.org</email>
</author>
<published>2015-09-26T14:15:01Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=266a154003d751663bbdafab2672704720a3b5cb'/>
<id>urn:sha1:266a154003d751663bbdafab2672704720a3b5cb</id>
<content type='text'>
All of these are already in CLEANFILES which is added to .NOPATH in bsd.obj.mk.

Sponsored by:	EMC / Isilon Storage Division
</content>
</entry>
<entry>
<title>Fix installation of 32bit libraries after r288074.</title>
<updated>2015-09-21T21:44:02Z</updated>
<author>
<name>Bryan Drewery</name>
<email>bdrewery@FreeBSD.org</email>
</author>
<published>2015-09-21T21:44:02Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=7c6cc9de3a52ce4eb1f30a41aafc0174211806c6'/>
<id>urn:sha1:7c6cc9de3a52ce4eb1f30a41aafc0174211806c6</id>
<content type='text'>
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
</content>
</entry>
<entry>
<title>Replace realinstall: and META_MODE staging hacks with FILES mechanism.</title>
<updated>2015-09-21T18:39:13Z</updated>
<author>
<name>Bryan Drewery</name>
<email>bdrewery@FreeBSD.org</email>
</author>
<published>2015-09-21T18:39:13Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=5ca34122ecdd5abc62bdae39663fec9ac8523d87'/>
<id>urn:sha1:5ca34122ecdd5abc62bdae39663fec9ac8523d87</id>
<content type='text'>
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
</content>
</entry>
<entry>
<title>Add META_MODE support.</title>
<updated>2015-06-13T19:20:56Z</updated>
<author>
<name>Simon J. Gerraty</name>
<email>sjg@FreeBSD.org</email>
</author>
<published>2015-06-13T19:20:56Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=ccfb965433c67f3bda935a3cdf334be2e3c4348d'/>
<id>urn:sha1:ccfb965433c67f3bda935a3cdf334be2e3c4348d</id>
<content type='text'>
Off by default, build behaves normally.
WITH_META_MODE we get auto objdir creation, the ability to
start build from anywhere in the tree.

Still need to add real targets under targets/ to build packages.

Differential Revision:       D2796
Reviewed by: brooks imp
</content>
</entry>
</feed>
