Commit Graph

97 Commits

Author SHA1 Message Date
Marius Strobl
acc743293d 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
David Chisnall
cf56074e52 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
Dimitry Andric
130515293b 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 Strobl
d6582233c1 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 Coosemans
2751839107 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
Warner Losh
25faff346c 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
David E. O'Brien
680e78b305 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
Stephane E. Potvin
a070c49911 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
Warner Losh
599e167f48 There's no need to redundantly redefine atomicity.h. 2008-12-31 07:39:23 +00:00
Alexander Kabaev
8fecbb4e34 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
Oleksandr Tymoshenko
36da6811b7 Add MIPS to the list of "no TLS" architectures.
Approved by:	cognet (mentor)
2008-05-03 21:24:28 +00:00
Alexander Kabaev
203ab4d0c3 Install etx/numeric_traits.h.
PR:		gnu/115250
Approved by:	re (blanket)
2007-08-16 23:02:00 +00:00
Alexander Kabaev
1b156a4077 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
Alexander Kabaev
afb57df680 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
David E. O'Brien
d3fbc8d9c0 The ARM platform does the setjmp/longjmp type of exception handling. 2006-10-05 20:55:37 +00:00
Ruslan Ermilov
cf35cbe5d9 Fix build due to the incomplete removal of demangle.h. 2006-09-30 12:52:15 +00:00
Alexander Kabaev
2972ed120b Reduce diffs with file generated by FSF configure. 2006-09-22 15:08:07 +00:00
Alexander Kabaev
4ece38b4ec Include <sys/defs.h> to get __ISO_C_VISIBLE definition is one is not
already available.
2005-09-16 21:24:10 +00:00
Alexander Kabaev
046b7565e6 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
Ken Smith
a84020c2b9 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
Tom Rhodes
d5f93c9179 Enforce style.Makefile(5).
Glanced at by:	ru (some time ago).
2005-04-22 18:57:32 +00:00
David Schultz
b4a12fe13b Teach libstdc++ about frexpl() and ldexpl(). 2005-03-26 08:27:53 +00:00
Alexander Kabaev
63686f9fb9 More math functions.
Prodded by:	stefanf
2005-01-26 14:23:31 +00:00
Alexander Kabaev
3a1a8495d2 We have floorl() now. Reflect this in the library config file. 2005-01-26 13:57:22 +00:00
Alexander Kabaev
44c3d0c80d 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
Colin Percival
08df008505 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
Ruslan Ermilov
1918cd64a5 Add atomicity.cc to CLEANFILES. 2004-09-01 08:17:20 +00:00
Alexander Kabaev
81efba8c9e Bmake glue for GCC 3.4.2-prerelease. 2004-07-28 05:27:21 +00:00
Alexander Kabaev
2814077c60 We generate this file from config.h automatically. 2004-07-28 05:23:28 +00:00
Ruslan Ermilov
47d7e8a96f Fixed style of DPADD and LDADD assignments as per style.Makefile(5). 2004-02-05 22:44:25 +00:00
Alexander Kabaev
4f6304398f Correct the atomicity.h fallback path on architectures which do not
define their own.
2004-01-06 19:20:30 +00:00
Alexander Kabaev
5187193bcc Do not install files which are not part of GCC 3.3.x anymore. 2004-01-05 20:59:05 +00:00
Alexander Kabaev
e67810e696 Update bmake bits to build GCC 3.3.1-prerelease. 2003-07-11 05:37:23 +00:00
Alexander Kabaev
487ee93a17 Update for GCC 3.3.1-pre. 2003-07-11 05:33:24 +00:00
Peter Wemm
542f4d6282 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
Dag-Erling Smørgrav
f212249acf Do not bogusly set CSTD to the empty string. 2003-06-14 13:30:32 +00:00
David E. O'Brien
0dd1486674 Something funky is going on here... disabling CSTD makes it go away... 2003-06-02 06:12:14 +00:00
Peter Wemm
ed8c5dcdc0 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
Alexander Kabaev
93fa8833c7 Enable wchar_t support in libstdc++. 2003-04-29 18:10:45 +00:00
David E. O'Brien
7af330a71c Enable ISO-C99 compatibility -- among other things, this tells libstdc++
not to blindly undef isnan() and other functions that became macros in C99.
Enable use of newly grown C99 functions: strtof(), strtold(), wcstof()

Submitted by:	das
2003-04-25 21:17:31 +00:00
Alexander Kabaev
61856f3619 Update for GCC 3.2.2 2003-02-19 04:28:12 +00:00
Alexander Kabaev
efb75db1a4 Install one more header file which is new with GCC 3.2.2. 2003-02-10 06:09:55 +00:00
Alexander Kabaev
8e44609c92 C++ exceptions with shared libraries are working on sparc64 now.
Build shared libstdc++so on sparc64 platform too.

Approved:	re (rwatson)
2002-12-05 17:04:03 +00:00
David E. O'Brien
b7cea4d5d2 Update for Gcc 3.2.1 release.
We also have more wide char support in libc now.
2002-12-04 17:47:34 +00:00
David E. O'Brien
5f24279c5d Remove files no longer part of the gcc_3_2_anoncvs_20021009 libstdc++.
Approved by:	re(jhb)
2002-11-27 18:52:04 +00:00
Peter Wemm
224af215a6 Zap now-unused SHLIB_MINOR 2002-09-28 00:25:32 +00:00
Alexander Kabaev
c62e08e3ac Bmake bits for GCC 3.2.1-prerelease libstdc++.
Connect two new source and one header file to the build.

Approved by:	obrien
2002-09-17 04:23:29 +00:00
Alexander Kabaev
948dfbed43 Connect new files added with GCC 3.2.1 import to the build.
Approved by:	obrien
2002-09-01 21:21:56 +00:00
Peter Wemm
bfdf38fb57 Bandaid for sparc64. Do not build libstdc++.so for now on sparc64.
Binaries compiled with it segfault.
2002-07-08 10:53:35 +00:00
David E. O'Brien
a323cdf035 Disconnect the docs until we figure out if there are any with v3. 2002-06-19 05:38:45 +00:00