106 Commits

Author SHA1 Message Date
ngie
173f714d97 Remove gnu/ info pages to unbreak the build with MK_GCC != no, etc
Reported by: Ivan Klymenko <fidaj@ukr.net>
Reviewed by: bapt
Differential Revision: D1412
2015-01-02 20:34:55 +00:00
bapt
1f18779318 Convert to LIBADD
Reduce overlinking
2014-11-25 21:18:18 +00:00
andrew
d588d5723d Remove MK_ARM_EABI, the armeb issues have been fixed. The code to support
the oabi is still in the tree, but it is expected this will be removed
as developers work on surrounding code.

With this commit the ARM EABI is the only supported supported ABI by
FreeBSD on ARMa 32-bit processors.

X-MFC after:	never
Relnotes:	yes
Differential Revision: https://reviews.freebsd.org/D876
2014-10-01 08:26:51 +00:00
dim
a1b87b576c Allow libstdc++ and libsupc++ to compile with clang again, after the
bsd.*.mk infrastructure changes.  Apparently, you must now modify
CXXFLAGS *before* including bsd.lib.mk, or your changes will be lost.
2014-05-11 21:07:00 +00:00
imp
2118f42afd Use src.opts.mk in preference to bsd.own.mk except where we need stuff
from the latter.
2014-05-06 04:22:01 +00:00
dim
b8e518528f To avoid having to explicitly test COMPILER_TYPE for setting
clang-specific or gcc-specific flags, introduce the following new
variables for use in Makefiles:

CFLAGS.clang
CFLAGS.gcc
CXXFLAGS.clang
CXXFLAGS.gcc

In bsd.sys.mk, these get appended to the regular CFLAGS or CXXFLAGS for
the right compiler.

MFC after:	1 week
2013-12-22 17:51:33 +00:00
dim
a4339b7e0a After r255321, clang uses libc++ by default. This leads to a lot of
errors when you enable WITH_GNUCXX to build libstdc++, since it will
include C++ headers from the libc++ installation under ${WORLDTMP}, and
those are not compatible with libstdc++ at all.

To fix this, add -stdlib=libstdc++ to CXXFLAGS when building libstdc++
(and its companion libsupc++) with clang.

Approved by:	re (delphij)
2013-09-12 21:24:59 +00:00
pfg
c86f3222f7 Teach libstdc++ about logl(3).
The logl(3) family of functions were implemented in r251292.
Define them in libstdc++'s configuration so they can be used.

Reviewed by:	dim
2013-08-13 20:28:21 +00:00
dim
62a21e98ad Regenerate libstdc++'s config.h, synchronizing it with our current
almost-C99 headers.

MFC after:	1 week
2013-02-15 23:12:35 +00:00
andrew
9b858bb6f0 Add compiler support for the ARM EABI.
ARM EABI support is disabled by default and can be enabled by setting
WITH_ARM_EABI when building, however only the kernel-toolchain target will
work with this flag until the rest of the support is added.
2013-01-17 05:56:28 +00:00
dim
36e49e1816 For building GNU libstdc++ and libsupc++, filter out libc++-specific and
-std= flags above c++98 or gnu++98 from CXXFLAGS *after* including
bsd.lib.mk, otherwise some additions to CXXFLAGS done in bsd.*.mk might
not be preserved.

MFC after:	1 week
2012-10-23 18:57:20 +00:00
dim
75d2b5c387 For building libstdc++ and libsupc++, filter out any -stdlib=libc++
option from CXXFLAGS, otherwise these libraries will not build.
Similarly, filter out any -std=xxx options that aren't supported.

Submitted by:	Yamaya Takashi <yamayan@kbh.biglobe.ne.jp>
MFC after:	2 weeks
2012-08-25 23:08:24 +00:00
marius
d256a9eb0e Turn on TLS support for arm on here as it is supported since r231618/
r231619 and working since r233106.
2012-06-14 20:27:28 +00:00
theraven
edca5630e2 Make libsupc++ build as a shared library and make libstdc++ a filter library
for it.

This allows people to swap out libsupc++ for libcxxrt easily, so we can begin
the libstdc++ -> libc++ migration.

Approved by:	dim (mentor)
2012-03-31 14:25:12 +00:00
dim
897775d6ee When one attempts to compile the tree with -march=i386, which also used
to be gcc's default before r198344, calls to atomic builtins will not be
expanded inline.  Instead, they will be generated as calls to external
functions (e.g. __sync_fetch_and_add_N), leading to linking errors later
on.

Put in a seatbelt that disables use of atomic builtins in libstdc++ and
llvm, when tuning specifically for the real i386 CPU.  This does not
protect against all possible issues, but it is better than nothing.
2011-11-06 14:07:23 +00:00
marius
dd7c472938 Now that TLS is supported for sparc64 by both binutils 2.17.50 committed
in r218822 and rtld(1) committed in r219533 turn on TLS support in GCC.
2011-03-11 21:24:02 +00:00
tijl
697336483f GCC defines built-ins for atomic instructions found on i486 and higher.
Because FreeBSD no longer supports the 80386 cpu all code targeting
FreeBSD/i386 necessarily runs on i486 or higher so the compiler
built-ins can be used by default inside libstdc++ and in C++ headers.
This allows newly compiled C++ code to inline some atomic operations.
Old binaries continue to use libstdc++ functions.

PR:		148926
Tested by:	Yuri Karaban <tech askold net>
Reviewed by:	kan
Approved by:	kib (mentor)
MFC after:	2 weeks
2010-09-07 08:33:17 +00:00
imp
c3a399c4ba MFtbemd:
Prefer MACHNE_CPUARCH to MACHINE_ARCH in most contexts where you want
to test of all the CPUs of a given family conform.
2010-08-23 22:24:11 +00:00
obrien
32d515bca0 Non-GCC gcc compatible compilers may provide the same multimedia intrinsic
headers as GCC, but of their own implementation.  So put the GCC ones into
their own header "namespace".

Requested by:	ed
2010-05-12 19:59:32 +00:00
sepotvin
48300c30dd Use the new PO_CXXFLAGS from r202807 to remove the '-ffunction-sections'
flag when compiling profiled objects as it's ignored by the compiler.
This removes the associated warning for each file compiled.

MFC after:	1 month
2010-01-22 14:09:15 +00:00
imp
9e74a27aaf There's no need to redundantly redefine atomicity.h. 2008-12-31 07:39:23 +00:00
kan
c4c883e016 Install extra include files that were forgotten in original GCC 4.2.x
import changes.

PR: 124647
Submitted by: Vlad GALU
MFC after: 2 days
2008-06-16 22:49:30 +00:00
gonzo
bee6ac39c3 Add MIPS to the list of "no TLS" architectures.
Approved by:	cognet (mentor)
2008-05-03 21:24:28 +00:00
kan
2bd799c9ea Install etx/numeric_traits.h.
PR:		gnu/115250
Approved by:	re (blanket)
2007-08-16 23:02:00 +00:00
kan
087655728e Fix the fallout from over-zealous obsolete files removal. Use correct
atomicity.h file for arm and powerpc.
2007-05-19 15:41:01 +00:00
kan
ebf45ed0c9 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.
2007-05-19 04:25:59 +00:00
obrien
25f4754ec5 The ARM platform does the setjmp/longjmp type of exception handling. 2006-10-05 20:55:37 +00:00
ru
be4f7e296e Fix build due to the incomplete removal of demangle.h. 2006-09-30 12:52:15 +00:00
kan
c8ba43b1fd Reduce diffs with file generated by FSF configure. 2006-09-22 15:08:07 +00:00
kan
6adebfab81 Include <sys/defs.h> to get __ISO_C_VISIBLE definition is one is not
already available.
2005-09-16 21:24:10 +00:00
kan
dafff159c4 Do not expose vfwscanf, vswscanf, vwscanf and wcstof functions if
they are not visible from wchar.h.
2005-09-16 20:56:17 +00:00
kensmith
f97f77429f Bump the shared library version number of all libraries that have not
been bumped since RELENG_5.

Reviewed by:	ru
Approved by:	re (not needed for commit check but in principle...)
2005-07-22 17:19:05 +00:00
trhodes
a9041ad05e Enforce style.Makefile(5).
Glanced at by:	ru (some time ago).
2005-04-22 18:57:32 +00:00
das
660dab49e8 Teach libstdc++ about frexpl() and ldexpl(). 2005-03-26 08:27:53 +00:00
kan
3ff9202b44 More math functions.
Prodded by:	stefanf
2005-01-26 14:23:31 +00:00
kan
3f0d8e467c We have floorl() now. Reflect this in the library config file. 2005-01-26 13:57:22 +00:00
kan
8a903b4c36 Of all templates only lists need a special implmementation file compiled
to support __GLIBCXX_DEBUG. Add debug_list.cc to the list of files to
compile.
2005-01-26 13:56:27 +00:00
cperciva
26981f098d Add -frandom-seed=RepeatabilityConsideredGood to CFLAGS for building this
library. As the value suggests, this allows the library to be built repeatably;
without this flag, gcc uses a random value in its parsing.

Since the random seed is only used when handling files which do not have any
externally-visible symbols, this change is not needed for any other libraries
in the FreeBSD base system.

Discussed on:	freebsd-arch (in early November)
Approved by:	kan
MFC after:	1 week
2005-01-17 08:38:31 +00:00
ru
1ee063801f Add atomicity.cc to CLEANFILES. 2004-09-01 08:17:20 +00:00
kan
482ec87e2d Bmake glue for GCC 3.4.2-prerelease. 2004-07-28 05:27:21 +00:00
kan
30330da27a We generate this file from config.h automatically. 2004-07-28 05:23:28 +00:00
ru
743cc6d002 Fixed style of DPADD and LDADD assignments as per style.Makefile(5). 2004-02-05 22:44:25 +00:00
kan
24d1ace5d7 Correct the atomicity.h fallback path on architectures which do not
define their own.
2004-01-06 19:20:30 +00:00
kan
42877fa04b Do not install files which are not part of GCC 3.3.x anymore. 2004-01-05 20:59:05 +00:00
kan
e16ef3051f Update bmake bits to build GCC 3.3.1-prerelease. 2003-07-11 05:37:23 +00:00
kan
365bf752c5 Update for GCC 3.3.1-pre. 2003-07-11 05:33:24 +00:00
peter
3ebd7677e2 Oops, remove hack to stop libstdc++.so being built now that gcc uses
-lgcc_pic by default on -fpic stuff.  I forgot about this here.
2003-06-26 01:30:44 +00:00
des
d84e6f299c Do not bogusly set CSTD to the empty string. 2003-06-14 13:30:32 +00:00
obrien
c32790bfaf Something funky is going on here... disabling CSTD makes it go away... 2003-06-02 06:12:14 +00:00
peter
b5e718b143 libstdc++.so breaks on amd64 due to bogons in our build, so prevent the
shared library being built for amd64.  The problem is that libstdc++.so
is produced with 'cc -shared'.  This has an internal -lgcc, which is
not PIC.  libstdc++.so uses exceptions and the dwarf2 unwinder, which
are in libgcc.a.  As a result, non-PIC code gets pulled into libstdc++.so.
This is fatal on amd64 when certain relocation types cannot be used in
PIC mode.  The official FSF solution to this is to have libgcc.so with
internal ELF symbol versioning to solve the ABI problem, but I dont want
to fight that battle yet.  I tried making libgcc_pic.a (which worked
fine), but thats not something for the 11th hour before a release.

Approved by:  re (amd64 "safe" stuff)
2003-05-24 19:38:18 +00:00