#
360643 |
|
04-May-2020 |
dim |
Merge additions of LLVM libunwind libgcc_eh and libgcc_s. This is in preparation of further LLVM merges.
MFC r307230 (by emaste):
Introduce lib/libgcc_eh and lib/libgcc_s for LLVM's implementation
They are not yet connected to the build, but I am adding them to allow for easier testing, ports exp-runs, etc.
Reviewed by: ed Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D8188
MFC r307231 (by emaste):
libgcc_s: add libm dependencies from div{d,s,x}c3
compiler-rt's complex division support routines contain calls to compiler builtins such as `__builtin_scalbnl`. Unfortunately Clang turns these back into a call to `scalbnl`.
For now link libm's C version of the required support routines.
Reviewed by: ed Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D8190
MFC r307864 (by emaste):
Move the LLVM-based libgcc_s to /lib
When enabled, it should install in the same location as the existing library.
Reported by: antoine
MFC r308001 (by emaste):
libgcc_eh/libgcc_s: apply hidden visibility only to static libs
MFC r308100 (by emaste):
compile libunwind c source with -fexceptions
When an exception is thrown the unwinder must unwind its own C source (starting with _Unwind_RaiseException in UnwindLevel1.c), so it needs to be built with unwinding data.
MFC r308294 (by emaste):
libgcc_s: make unspecified shlib symbols local
We want only symbols explicitly specified in the Version.map.
Sponsored by: The FreeBSD Foundation
MFC r308308 (by emaste):
Connect new LLVM-based libgcc_eh & libgcc_s to the build
Compiler-rt and LLVM's libunwind provide a suitable replacement for libgcc.a, libgcc_eh.a, and libgcc_s.so.
Remove the now-unused LLVM_LIBUNWIND block from gnu/lib/libgcc.
PR: 213480 [exp-run] Reviewed by: brooks, ed Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D8189
MFC r308379 (by emaste):
add __divdi3 and __udivdi3 to libgcc_s symbol version map
After r308294 they were missing on i386 (and previously were exported only accidentally).
Reported by: antoine
MFC r308445 (by emaste):
add missing i386 symbols libgcc_s symbol version map
After r308294 they were missing on i386 (and previously were exported only accidentally).
Reported by: antoine
MFC r312076 (by emaste):
libgcc_s: add libc DT_NEEDED to fix underlinking
PR: 216012 Reported by: jbeich Sponsored by: The FreeBSD Foundation
MFC r316101 (by ngie):
Apply r315689 to lib/libgcc_s as well to unbreak the gcc xtoolchain build
lib/libgcc_s consumes lib/libcompiler_rt/Makefile*. The NO_WERROR.gcc in lib/libcompiler_rt/Makefile doesn't seem to have made a difference in being able to build this, so sprinkle NO_WERROR.gcc here as well.
Reported by: Jenkins (FreeBSD-head-amd64-gcc) Tested with: amd64-gcc-6.3.0 (devel/amd64-xtoolchain-gcc) Sponsored by: Dell EMC Isilon
MFC r320673 (by emaste):
Sort entries in libgcc_s Version.map
MFC r337585 (by dim):
In r308100, an explicit -fexceptions flag was added for the C sources from LLVM's libunwind, which end up in libgcc_eh.a and libgcc_s.so. This is because the unwinder needs the unwinder data for its own functions.
However, for the C++ sources in libunwind, -fexceptions is already the default, and this can have the side effect of generating a reference to __gxx_personality_v0, the so-called personality function, which is normally provided by the C++ ABI library (libcxxrt or libsupc++).
If the reference ends up in the eventual libgcc_s.so, linking any non-C++ programs against it will fail with "undefined reference to `__gxx_personality_v0'".
Note that at high optimization levels, the reference is usually optimized away, which is why we have never noticed this problem before.
With clang 7.0.0 though, higher optimization levels don't help anymore, since the addition of address-significance tables [1] in <https://reviews.llvm.org/rL337339>. Effectively, this always causes a reference to __gxx_personality_v0.
After discussion with the upstream author of that change, it turns out that we should compile libunwind sources with the -fno-exceptions -funwind-tables flags instead. This ensures unwind tables are generated, but no references to any personality functions are emitted.
[1] https://lists.llvm.org/pipermail/llvm-dev/2018-May/123514.html
Reported by: jbeich PR: 230399
|
#
356775 |
|
16-Jan-2020 |
kevans |
MFC r356356, r356358, r356422: replace gcclibs' libssp
r356356: Provide libssp based on libc
For libssp.so, rebuild stack_protector.c with FORTIFY_SOURCE stubs that just abort built into it.
For libssp_nonshared.a, steal stack_protector_compat.c from ^/lib/libc/secure and massage it to maintain that __stack_chk_fail_local is a hidden symbol.
libssp is now built unconditionally regardless of {WITH,WITHOUT}_SSP in the build environment, and the gcclibs version has been disconnected from the build in favor of this one.
r356358: libssp: fix FORTIFY_SOURCE stub declarations
The LSB 4.1 that I referenced omitted the varargs, and I failed to catch it. The __vsnprintf_chk error was from just downright misreading the page. GCC6 caught all of these, but I had only tested GCC4.2.
r356422: Update libssp paths in various Makefile.depend* files
I've been advised that the model that uses these are fairly resilient, but we do know the proper path to use (or remove, in the case of ^/targets/...), so go ahead and update them to reflect that.
|
#
346333 |
|
17-Apr-2019 |
dim |
After r346168, also merge build infrastructure for LLVM libomp.
MFC r345235:
Add lib/libomp, with a Makefile, and generated configuration headers. Not connected to the main build yet, as there is still the issue of the GNU omp.h header conflicting with the LLVM one. (That is, if MK_GCC is enabled.)
PR: 236062
MFC r345236:
Connect lib/libomp to the build.
* Set MK_OPENMP to yes by default only on amd64, for now. * Bump __FreeBSD_version to signal this addition. * Ensure gcc's conflicting omp.h is not installed if MK_OPENMP is yes. * Update OptionalObsoleteFiles.inc to cope with the conflicting omp.h. * Regenerate src.conf(5) with new WITH/WITHOUT fragments.
Relnotes: yes PR: 236062
MFC r345242:
Explicitly link libomp.so against -lpthread, as it depends on pthread functionality. This should make example OpenMP programs work out of the box.
Reported by: jbeich PR: 236062, 236581
MFC r345278:
Also explicitly link libomp.so against -lm, as it transitively depends on scalbn and a few other math functions, via libcompiler-rt. This should allow OpenMP programs to link with BFD linkers too.
Reported by: jbeich PR: 236062, 236581
MFC r345282:
Remove --as-needed from the linker flags for libomp.so, as these actually prevent the transitive dependency on libm.
Reported by: jbeich PR: 236062, 236581
MFC r345291:
Turn on MK_OPENMP for i386 by default, now that it can build.
Noticed by: jbeich PR: 236062, 236582
|
#
331460 |
|
23-Mar-2018 |
ian |
MFC r307656, r307659, r307674-r307675, r307679, r307683
Support for WITHOUT_GNU_DIFF and WITHOUT_GNU_GREP, plus manually regenerated src.conf.5, which seems to have picked up a couple changes beyond what was in this MFC.
r307656: Put each SUBDIR on a separate line for ease of maintenance
Additional patches to this file are in progress, and having each SUBDIR entry on a separate line makes it easier to change the order in which the patches are reviewed, tested, and applied.
r307659: Switch gnu/usr.bin/Makefile to SUBDIR.${MK_*} optional subdir style
r307674: Add knobs to make GNU diff and GNU grep optional
This is added to facilitate experiments building FreeBSD without copyleft software.
If WITHOUT_GNU_DIFF is set no /usr/bin/diff or /usr/bin/diff3 will be built.
If WITHOUT_GNU_GREP is set then BSD grep will be installed as /usr/bin/bsdgrep or /usr/bin/grep, depending on the WITH_BSD_GREP knob.
Reviewed by: brooks (earlier) Sponsored by: The FreeBSD Foundation Differential Revision: Differential Revision: https://reviews.freebsd.org/D8288
r307675: Remove trailing whitespace from r307674
r307679: Build libgnuregex only if necessary for other components
Reviewed by: brooks Differential Revision: https://reviews.freebsd.org/D8298
r307683: Correct typo in r307679: the variable is MK_GNU_GREP_COMPAT
|
#
302408 |
|
07-Jul-2016 |
gjb |
Copy head@r302406 to stable/11 as part of the 11.0-RELEASE cycle. Prune svn:mergeinfo from the new branch, as nothing has been merged here.
Additional commits post-branch will follow.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
289393 |
|
15-Oct-2015 |
bdrewery |
Add more SUBDIR_PARALLEL.
MFC after: 3 weeks Sponsored by: EMC / Isilon Storage Division
|
#
285684 |
|
18-Jul-2015 |
marius |
- Record dependencies of gdb/gdbtui/kgdb on binutils/lib{bfd,iberty,opcodes}, fixing parallel builds. - Don't build gdb/gdbtui/kgdb or libreadline when MK_BINUTILS is "no" for obvious reasons.
MFC after: 3 days
|
#
283543 |
|
25-May-2015 |
bapt |
ntp is now again libreadline free, so only build libreadline for gdb
|
#
283517 |
|
25-May-2015 |
markm |
Unbreak build where WANT_GDB == "no', as libreadline is also used by ntpdc.
|
#
283065 |
|
18-May-2015 |
bapt |
Only build libreadline if gdb is going to be built
gdb is the only consumer of libreadline which is an INTERNALLIB
|
#
283060 |
|
18-May-2015 |
emaste |
Build libgcov only if we're building base system GCC
Clang uses compiler-rt for the code coverage runtime, and ports GCC provides its own libgcov.
PR: 200203 (exp-run) Sponsored by: The FreeBSD Foundation
|
#
282973 |
|
15-May-2015 |
emaste |
Build libgomp only if we're also building base system GCC
Clang's OpenMP support will emit Intel OpenMP API library calls, and will therefore require libiomp (or whatever name is settled on). An up-to-date version of libgomp is included in ports or pkg GCC. Thus, there is no reason to build base libgomp without base system GCC.
PR: 199979 (exp-run) Reviewed by: pfg Relnotes: Yes Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D2459
|
#
268508 |
|
10-Jul-2014 |
imp |
Make MK_GNUCXX mean "build the libstdc++ and libsupc++ libraries" and nothing more. Force it to be "no" when MK_CXX is "no" to simplify usage. It no longer also means "build g++" since we no longer have a platform where that's interesting now that pc98 no longer needs clang and gcc, but not g++. pc98 now just uses clang after boot2 changes.
|
#
265420 |
|
06-May-2014 |
imp |
Use src.opts.mk in preference to bsd.own.mk except where we need stuff from the latter.
|
#
264741 |
|
21-Apr-2014 |
jmmv |
Add placeholder Kyuafiles for various top-level hierarchies.
This change adds tests/ directories in the source tree to create various subdirectories in /usr/tests/ and to install placeholder Kyuafiles for them.
the relevant hierarchies are: cddl, etc, games, gnu and secure.
The reason for this is to simplify the addition of new test programs for utilities or libraries under any of these directories. Doing so on a case by case basis is unnecessary and is quite an obscure process.
|
#
263991 |
|
01-Apr-2014 |
imp |
It is possible that MK_GNUCXX is "yes" but MK_CXX is "no" so make sure MK_CXX isn't "no" before building these libraries.
|
#
255321 |
|
06-Sep-2013 |
theraven |
On platforms where clang is the default compiler, don't build gcc or libstdc++. To enable them, set WITH_GCC and WITH_GNUCXX in src.conf. Make clang default to using libc++ on FreeBSD 10. Bumped __FreeBSD_version for the change.
GCC is still enabled on PC98, because the PC98 bootloader requires GCC to build (or, at least, hard-codes the use of gcc into its build).
Thanks to everyone who helped make the ports tree ready for this (and bapt for coordinating them all). Also to imp for reviewing this and working on the forward-porting of the changes in our gcc so that we're getting to a much better place with regard to external toolchains.
Sorry to all of the people who helped who I forgot to mention by name.
Reviewed by: bapt, imp, dim, ...
|
#
235727 |
|
21-May-2012 |
marcel |
Don't recurse into libssp when MK_SSP is set to no.
|
#
227951 |
|
24-Nov-2011 |
fjoe |
libodialog: disconnect from the build and obsolete.
|
#
220755 |
|
17-Apr-2011 |
dim |
Remove libobjc and other Objective-C related components, as these are extremely outdated, and not used by anything in the base system.
Silence from: current@
|
#
217309 |
|
12-Jan-2011 |
nwhitehorn |
Update dialog to version 20100428. This changes the license under which dialog is distributed from GPLv2 to LGPLv2 and introduces a number of new features and a new and better libdialog API. The existing libdialog will be kept temporarily as libodialog for compatibility purposes until sade, sysinstall and tzsetup have been either updated or replaced.
__FreeBSD_version is now 900030.
Discussed on: -current Approved by: core Obtained from: http://invisible-island.net/dialog
|
#
180012 |
|
25-Jun-2008 |
ru |
Enable GCC stack protection (aka Propolice) for userland: - It is opt-out for now so as to give it maximum testing, but it may be turned opt-in for stable branches depending on the consensus. You can turn it off with WITHOUT_SSP. - WITHOUT_SSP was previously used to disable the build of GNU libssp. It is harmless to steal the knob as SSP symbols have been provided by libc for a long time, GNU libssp should not have been much used. - SSP is disabled in a few corners such as system bootstrap programs (sys/boot), process bootstrap code (rtld, csu) and SSP symbols themselves. - It should be safe to use -fstack-protector-all to build world, however libc will be automatically downgraded to -fstack-protector because it breaks rtld otherwise. - This option is unavailable on ia64.
Enable GCC stack protection (aka Propolice) for kernel: - It is opt-out for now so as to give it maximum testing. - Do not compile your kernel with -fstack-protector-all, it won't work.
Submitted by: Jeremie Le Hen <jeremie@le-hen.org>
|
#
169718 |
|
19-May-2007 |
kan |
Update bmake glue to build GCC 4.2.
Also: Switch FreeBSD to use libgcc_s.so.1.
Use dl_iterate_phdr to locate shared objects' exception frame info instead of depending on older register_frame_info machinery. This allows us to avoid depending on libgcc_s.so.1 in binaries that do not use exception handling directly. As an additional benefit it breaks circular libc <=> libgcc_s.so.1 dependency too.
Build newly added libgomp.so.1 library, the runtime support bits for OpenMP.
Build LGPLed libssp library. Our libc provides our own BSD-licensed SSP callbacks implementation, so this library is only built to benefit applications that have hadcoded knowledge of libssp.so and libssp_nonshared.a. When linked in from command line, these libraries override libc implementation.
|
#
156813 |
|
17-Mar-2006 |
ru |
Reimplementation of world/kernel build options. For details, see:
http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html
The src.conf(5) manpage is to follow in a few days.
Brought to you by: imp, jhb, kris, phk, ru (all bugs are mine)
|
#
133707 |
|
14-Aug-2004 |
kan |
Add libgcov, a runtime support library for binaries compiled for basic block profiling.
|
#
103436 |
|
16-Sep-2002 |
peter |
Initiate deorbit burn for the i386-only a.out related support. Moves are under way to move the remnants of the a.out toolchain to ports. As the comment in src/Makefile said, this stuff is deprecated and one should not expect this to remain beyond 4.0-REL. It has already lasted WAY beyond that.
Notable exceptions: gcc - I have not touched the a.out generation stuff there. ldd/ldconfig - still have some code to interface with a.out rtld. old as/ld/etc - I have not removed these yet, pending their move to ports. some includes - necessary for ldd/ldconfig for now.
Tested on: i386 (extensively), alpha
|
#
97433 |
|
28-May-2002 |
peter |
Add some build glue for libstdc++. I'm not a C++ person, but this seems to work at least for the non-hairy stuff. The main wrinkle here is that a whole mess of include files get installed and under different names. An earlier version of this built a shadow include tree first in the obj directory, but this depends on the 'make includes' functionality.
More tweaking is certainly going to be needed.
|
#
96669 |
|
15-May-2002 |
ru |
Make sure to not yet build the GNU C++, but still allow for the C++ progs to be built with e.g. an old compiler, CXX=/usr/bin/c++, for the time being.
|
#
96303 |
|
09-May-2002 |
obrien |
All platforms should be on equal footing now -- no special handling for Sparc64 and IA-64.
|
#
94244 |
|
08-Apr-2002 |
peter |
Unbreak world (missing .else)
Submitted by: fenner Pointy hat to: obrien
|
#
94231 |
|
08-Apr-2002 |
obrien |
Some things don't compile on ia64 and sparc64 yet.
|
#
89015 |
|
07-Jan-2002 |
jhb |
Back out the previous revision for now. Instead, the current sparc64 Makefile changes are in the sparc64 p4 tree.
|
#
88854 |
|
03-Jan-2002 |
jhb |
Don't build csu or libgcc on sparc64 for the time being.
|
#
80530 |
|
29-Jul-2001 |
dd |
Enable the new libmp in the build, and disable libgmp and its henchmen.
|
#
70703 |
|
06-Jan-2001 |
obrien |
Use a unified libgcc rather than a seperate one for threaded and non-threaded programs. This provides threaded programs with the needed exception frame symbols.
parts submitted by: Max Khon <fjoe@iclub.nsu.ru> PR: 23252
|
#
69162 |
|
25-Nov-2000 |
obrien |
Don't compile libgcc_r twice.
|
#
69128 |
|
24-Nov-2000 |
obrien |
Don't build libgcc_r if "NOLIBC_R" defined. If you don't have a threads safe libc, having a threads safe libgcc isn't of much use.
|
#
67811 |
|
28-Oct-2000 |
obrien |
* Bring back the guts of crt{i,n}.S. This allows C++ exceptions to work when using the egcs and gcc-devel ports, along with GCC built from stock public FSF sources. With out this change, FreeBSD will be removed from the list of systems GCC 3.0 must be evaluated on before release. With the effort some of us put into getting FreeBSD on this list, we should not turn this effort into a waste, else we might not be worth fighting for in the future. (note that Alpha and IA-64 versions of crt{i,n}.S are needed)
* Switch from our own crt{begin,in} to those created from GCC's crtstuff.c. This will allow us to switch to DWARF2 exceptions in the future, along with staying in sync with any future GCC requirements.
* Break out our ELF branding bits into a seperate file. Currently this is now included by our crt1.c files (since this functionality was part of our native crtbegin.c). Later crtbrand.o will be merged in the creation of crti.o.
|
#
67489 |
|
24-Oct-2000 |
obrien |
Add "NO_CXX" knob to match src/gnu/usr.bin/cc/Makefile.
|
#
53787 |
|
27-Nov-1999 |
obrien |
Make ObjC bits optional. NO_OBJC ==> don't need `em.
|
#
50472 |
|
27-Aug-1999 |
peter |
$Id$ -> $FreeBSD$
|
#
45769 |
|
18-Apr-1999 |
obrien |
Hookup libg2c. (define NO_FORTRAN if you don't want it built)
|
#
45669 |
|
13-Apr-1999 |
obrien |
Create a libgcc with POSIX threads support.
Submitted by: Luoqi Chen <luoqi@chen.ml.org> (reorganized by me)
|
#
45299 |
|
04-Apr-1999 |
obrien |
Minimum set of changes to switch from Gcc 2.7.2 (in contrib/gcc) to Egcs 1.1.2 (in contrib/egcs)
|
#
45169 |
|
31-Mar-1999 |
obrien |
Hookup libgcc at gnu/lib instead of gnu/usr.bin/cc (libgcc was repository copied for me by Peter)
|
#
38751 |
|
02-Sep-1998 |
bde |
Fixed munging of the SUBDIR list in rev.1.16-1.18.
|
#
38696 |
|
31-Aug-1998 |
dfr |
All libs build on alpha now.
|
#
33610 |
|
19-Feb-1998 |
jb |
Just one of these libs left to port to alpha.
|
#
32407 |
|
10-Jan-1998 |
jb |
Avoid building x86 specific libraries on Alpha.
|
#
22996 |
|
22-Feb-1997 |
peter |
Revert $FreeBSD$ to $Id$
|
#
21673 |
|
14-Jan-1997 |
jkh |
Make the long-awaited change from $Id$ to $FreeBSD$
This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long.
Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise.
|
#
18672 |
|
04-Oct-1996 |
peter |
Add libstdc++ to the SUBDIR list
|
#
18391 |
|
19-Sep-1996 |
peter |
Add libobjc, the Objective-C runtime library.
|
#
14032 |
|
11-Feb-1996 |
phk |
gnumalloc is gone.
|
#
12266 |
|
13-Nov-1995 |
markm |
Add libgmp.
|
#
12238 |
|
12-Nov-1995 |
markm |
Add libmp
|
#
5659 |
|
16-Jan-1995 |
ache |
Remove */doc
|
#
5496 |
|
11-Jan-1995 |
ache |
libregex/doc added
|
#
5387 |
|
04-Jan-1995 |
ache |
Add readline/doc to SUBDIR
|
#
3519 |
|
11-Oct-1994 |
ache |
libdialog added
|
#
2615 |
|
09-Sep-1994 |
rgrimes |
Reenable libg++
|
#
1912 |
|
07-Aug-1994 |
jkh |
Remove libg++ until we have a working one again. Submitted by: jkh
|
#
1469 |
|
09-May-1994 |
ache |
libreadline added
|
#
1042 |
|
29-Jan-1994 |
rgrimes |
Update for new organization of gnu tree.
|