History log of /freebsd-10.0-release/gnu/lib/libgcc/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
259065 07-Dec-2013 gjb

- Copy stable/10 (r259064) to releng/10.0 as part of the
10.0-RELEASE cycle.
- Update __FreeBSD_version [1]
- Set branch name to -RC1

[1] 10.0-CURRENT __FreeBSD_version value ended at '55', so
start releng/10.0 at '100' so the branch is started with
a value ending in zero.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


249702 20-Apr-2013 ed

Enable libcompiler-rt on MIPS.

Originally we disabled libcompiler-rt on MIPS and SPARC64, because of an
issue where __clzdi2 and __ctzdi2 would cause endless recursion. This
bug has been fixed in r230021 already, but for some reason we only
switched to libcompiler-rt on SPARC64 -- not MIPS.

This means we can finally use <stdatomic.h> on all our architectures.


248401 17-Mar-2013 andrew

Link libgcc_s against compiler-rt on ARM EABI. This allows us to use all of
the symbols in compiler-rt, including the ones not available in the old
libgcc. This fixes the build with clang which generates calls to funstions
that are missing from libgcc_s.


245539 17-Jan-2013 andrew

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.


244382 18-Dec-2012 andrew

Get libcompiler-rt and libgcc building on ARM with clang.

* Don't provide clear_cache or the __sync_* functions on ARM with clang as
they are provided by clang as builtin functions.
* Tell clang it is aloud to compile some libgcc code using heinous GCC
extensions.


243933 06-Dec-2012 eadler

Clean up hardcoded ar(1) flags in the tree to use the global ARFLAGS in
share/mk/sys.mk instead.

This is part of a medium term project to permit deterministic builds of
FreeBSD.

Submitted by: Erik Cederstrand <erik@cederstrand.dk>
Reviewed by: imp, toolchain@
Approved by: cperciva
MFC after: 2 weeks


235487 15-May-2012 marius

Switch sparc64 to using libcompiler_rt; since r230021 we have a workaround
in place allowing it to be used there and since r235388 (see also r235486)
we also have usable div/mod optimizations like libgcc has.


234546 21-Apr-2012 imp

Replace a bare use of nm with ${NM} for easier cross compilation in
environments where nm is spelled differently.


233644 29-Mar-2012 jmallett

Assume a big-endian default on MIPS and drop the "eb" suffix from MACHINE_ARCH.
This makes our naming scheme more closely match other systems and the
expectations of much third-party software. MIPS builds which are little-endian
should require and exhibit no changes. Big-endian TARGET_ARCHes must be
changed:
From: To:
mipseb mips
mipsn32eb mipsn32
mips64eb mips64

An entry has been added to UPDATING and some foot-shooting protection (complete
with warnings which should become errors in the near future) to the top-level
base system Makefile.


218181 02-Feb-2011 imp

Revert last change now that the reason for it is no more...
MACHINE_ARCH is now always mipsel when building mips/mips.


218064 29-Jan-2011 jchandra

Rewrite the ARCH check another way for backward compatibility.

Compilation fails now, if TARGET_ARCH=mips instead of mipsel/mipseb.


217942 27-Jan-2011 jchandra

Fix n32 compile.

These changes are needed to fix n32 compile after the recent change of
mips n32 MACHINE_ARCH to mipsn32eb/mipsn32el.

Reviewed by: imp, bz (earlier version)


217123 07-Jan-2011 imp

Retire TARGET_ABI.

Implement MACHINE_ARCH=mips64e[lb] to build N64 images. This replaces
MACHINE_ARCH=mipse[lb] TARGET_ABI=n64.

MACHINE_ARCH=mipsn32e[lb] has been added, but currently requires
WITHOUT_CDDL due to atomic issues in libzfs. I've not investigated
this much, but implemented this to preserve as much of the TARGET_ABI
functionality that I could. Since its presence doesn't affect the
working cases, I've kept it in for now.

Added mips64e[lb] to make universe, so more kernels build.

And I think this (finally) closes the curtain on the tbemd tree.


216804 29-Dec-2010 kan

Switch mips architectures back to libgcc.

MIPS64 n64 binaries are broken with libcompiler_rt at this time.
Switch mips back to libgcc until the cause of breakage is analyzed
and fixed.


215275 14-Nov-2010 imp

These two cases should be different...

Submitted by: nathanw@


215185 12-Nov-2010 ed

Revert to libgcc for sparc64.

I've had a report of a sparc64 system where cc1 generates illegal
instructions. We still have to diagnose this properly, but instead of
hosing all sparc64 boxes out there, fall back to libgcc to prevent more
damage.

Reported by: Florian Smeets


215127 11-Nov-2010 ed

Replace libgcc.a by libcompiler_rt.a.

libcompiler_rt.a is a BSD licensed C language runtime, which implements
many routines which are linked into binaries on architectures where
certain functionality is missing (e.g. 64 bits mul/div on i386).

Unfortunately, libcompiler_rt cannot replace libgcc entirely. Certain
features, such as an unwinder for exception handling, are missing.
That's why only libgcc.a is replaced for now, because this one does seem
to be complete.

Tested by: rene (amd64), nwhitehorn (powerpc), droso (i386 exprun)
and many others. Thanks!
Obtained from: user/ed/compiler-rt


215126 11-Nov-2010 ed

Don't use ${LIB} to obtain the library name.

Once we use libcompiler_rt, the LIB-line must go, to prevent libgcc.a
from being built. Therefore, just hardcode the name.

Obtained from: user/ed/compiler-rt


215082 10-Nov-2010 imp

Complete the integration of tbemd branch into head.

TARGET_BIG_ENDIAN is now completely dead, except where it was
originally supposed to be used (internally in the toolchain building).

TARGET_ARCH has changed in three cases:
(1) Little endian mips has changed to mipsel.
(2) Big endian mips has changed to mipseb.
(3) Big endian arm has changed to armeb.

Some additional changes are needed to make 'make universe' work on arm
and mips after this change, so those are commented out for now.

UPDATING information will be forthcoming. Any remaining rough edges
will be hammered out in -current.


209867 10-Jul-2010 nwhitehorn

Teach our toolchain how to generate 64-bit PowerPC binaries. This fixes
a variety of bugs in binutils related to handling of 64-bit PPC ELF,
provides a GCC configuration for 64-bit PowerPC on FreeBSD, and
associated build systems tweaks.

Obtained from: projects/ppc64


208737 02-Jun-2010 jmallett

Add/improve mips64r2, Octeon, n32 and n64 support in the toolchain.

o) Add TARGET_ABI to the MIPS toolchain build process. This sets the default
ABI to one of o32, n32 or n64. If it is not set, o32 is assumed as that is
the current default.
o) Set the default GCC cpu type to any specified TARGET_CPUTYPE. This is
necessary to have a working "cc" if e.g. mips64 is specified, as binutils
will refuse to link objects using different ISAs in some cases.
o) Add support for n32 and n64 ABIs to binutils and GCC.
o) Add additional required libgcc2 stubs for n32 and n64.
o) Add support for the "mips64r2" architecture to GCC. Add the "octeon"
o) When static linking, wrap default libraries in --start-group and
--end-group. This is required for static linking to work on n64 with the
interdependencies between libraries there. This is what other OSes that
support n64 seem to do, as well.
o) Fix our GCC spec to define __mips64 for 64-bit targets, not __mips64__, the
former being what libgcc, etc., check and the latter seemingly being a
misspelling of a hand merge from a Linux spec.
o) When no TARGET_CPUTYPE is specified at build time, make GCC take the default
ISA from the ABI. Our old defaults were too liberal and assumed that 64-bit
ABIs should default to the MIPS64 ISA and that 32-bit ABIs should default to
the MIPS32 ISA, when we are supporting or will support some systems based on
earlier 32-bit and 64-bit ISAs, most notably MIPS-III.
o) Merge a new opcode file (and support code) from a later version of binutils
and add flags and code necessary to support Octeon-specific instructions.
This should also make merging opcodes for other modern architectures easier.

Reviewed by: imp


207995 12-May-2010 obrien

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


201852 08-Jan-2010 imp

Merge r195030 from project/mips into head by hand:

r195030 | gonzo | 2009-06-25 19:27:31 -0600 (Thu, 25 Jun 2009) | 4 lines
- Switch to libc softfloat from libgcc implementation. The problem
with latter is that it is not complete, fpsetXXX/fpgetXXX
functions are missing.


200499 14-Dec-2009 kan

Fix one spelling and one copy&paste error in comments.


195697 14-Jul-2009 kan

Second attempt at eliminating .text relocations in shared libraries
compiled with stack protector.

Use libssp_nonshared library to pull __stack_chk_fail_local symbol into
each library that needs it instead of pulling it from libc. GCC
generates local calls to this function which result in absolute
relocations put into position-independent code segment, making dynamic
loader do extra work every time given shared library is being relocated
and making affected text pages non-shareable.

Reviewed by: kib
Approved by: re (kib)


195152 29-Jun-2009 kan

Back out previous revision until better tested fix is ready.

Approved by: re (impliciti, by approving previos check-in)


195151 28-Jun-2009 kan

Eliminate .text relocations in shared libraries compiled with stack protector.

Use libssp_nonshared library to pull __stack_chk_fail_local symbol into
each library that needs it instead of pulling it from libc. GCC generates
local calls to this function which result in absolute relocations put into
position-independent code segment, making dynamic loader do extra work everys
time given shared library is being relocated and making affected text pages
non-shareable.

Reviewed by: kib
Approved by: re (kensmith)


188583 13-Feb-2009 jkim

Honor WITHOUT_INSTALLLIB in some places.


183167 19-Sep-2008 imp

MFP4: Add mips to the list of soft-float platforms.


183165 19-Sep-2008 imp

Prefer the patch in p4 to the patch in svn as it properly sorts the
architectures alphabetically.


182627 01-Sep-2008 obrien

Add FreeBSD/MIPS support to GCC.


176530 24-Feb-2008 raj

Let PowerPC world optionally build with -msoft-float. For FPU-less PowerPC
variations (e500 currently), this provides a gcc-level FPU emulation and is an
alternative approach to the recently introduced kernel-level emulation
(FPU_EMU).

Approved by: cognet (mentor)
MFp4: e500


171846 14-Aug-2007 kan

Remove comment that was added by mistakes and which prevented _eprintf
and gcc_bcmp to be added to static libgcc.a.

Approved by: re (kensmith)


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.


163279 12-Oct-2006 cognet

Don't build the libgcc with functions already included in the libc to
unbreak the build.
We'll switch back to the libgcc functions and get rid of the libsoftfloat
later.


156854 18-Mar-2006 ru

Convert NO_PROFILE and NO_LIB32 to new style.


139106 21-Dec-2004 ru

NODOCCOMPRESS -> NO_DOCCOMPRESS
NOINFO -> NO_INFO
NOINFOCOMPRESS -> NO_INFOCOMPRESS
NOLINT -> NO_LINT
NOPIC -> NO_PIC
NOPROFILE -> NO_PROFILE


136910 24-Oct-2004 ru

For variables that are only checked with defined(), don't provide
any fake value.


133103 04-Aug-2004 kan

Add missing patch which was forgotten during GCC 3.4.2 import. libgcc.a
gets most of it content back now, when symbols from LIB2FUNCS are actually
compiled.

Noticed by: Steve Kargl <gk at troutmask dot apl dot washington dot edu>
Pointy hat to: kan


132751 28-Jul-2004 kan

Bmake glue for GCC 3.4.2-prerelease.


117425 11-Jul-2003 kan

Add unwind-c.c file required for -fexceptions in C sources.


117082 30-Jun-2003 ru

Catch up with bsd.lib.mk,v 1.143.


116318 13-Jun-2003 peter

Build/install the PIC version of libgcc (libcc_pic.a) for use by shared
libraries that do exception unwinding.


104073 28-Sep-2002 peter

Zap now-unused SHLIB_MINOR


103436 17-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


96850 18-May-2002 obrien

Fix the sparc64 build and make the LIB1ASMSRC handling more robust.


96846 18-May-2002 phk

Improve chances that we correctly compile LIB1ASMSRC on all architectures.

sparc64 looked for the nonexistent sparc64/lb1spc.asm file instead
of the sparc/lb1spc.asm file.

arm probably looked for arm/arm/lib1funcs.asm instead of arm/lib1funcs.asm
ia64 probably looked for ia64/ia64/lib1funcs.asm instead of ia64/lib1funcs.asm

i386 and alpha don't seen to use the LIB1ASMSRC.


96799 17-May-2002 peter

Move LIB1ASMFUNCS from the SYMS variable and explicitly add it to OBJS
later. Otherwise make will try and build the supposedly assembler .o
files from libgcc2.c - which does not work too well (the .o's have no
content)

Reviewed by: obrien


96784 17-May-2002 obrien

Post rev 1.39, the PowerPC specific additions to OBJS was getting lost.


96779 17-May-2002 obrien

bsd.lib.mk now understands what to do with .asm files.
So we can refer to these files by their real name vs. playing tricks
renaming them during the build.


96456 12-May-2002 obrien

Properly build lb1spc.asm on Sparc64.


96449 12-May-2002 obrien

I was not strict enough with my ordering of things to satisfy make(1) nieve
symbol evaluation which causes it to be very sensitive to macro ordering.


96343 10-May-2002 obrien

[Ab]use LDFLAGS rather than CFLAGS.
BDE tells me POSIX pretends `ld' as a directly callable entity does not exist.


96340 10-May-2002 obrien

Bmake bits for Gcc 3.1.

Partially made possible by: Wilko.Bulte@compaq.com


95091 20-Apr-2002 obrien

It is easier for me to debug with -I's at the rear.


93871 05-Apr-2002 obrien

Style reorg. Also spell -fpic as determined by bsd.lib.mk.


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


61238 04-Jun-2000 obrien

Scoot things over to the temporary *.295 source while I do major construction
on the mainline sources.


58478 23-Mar-2000 obrien

Clean up the FreeBSD configuration files -- includes removing the usage
of svr4.h on the i386, and moving all the shared arch neutral bits into
the FreeBSD general config header.


53263 17-Nov-1999 obrien

Pay attention to the "KEEP THIS IN SYNC" comment, and sync the `tm.h'
header with src/gcc/usr.bin/cc/cc_tools/Makefile.


53173 15-Nov-1999 obrien

Cut over the system compiler from from EGCS 1.1.2 to GCC 2.95.2.


53162 15-Nov-1999 obrien

Cosmetic change to match cc_tools/Makefile


51895 03-Oct-1999 bde

Fixed the hack for using "../libgcc/Makefile" in libgcc_r/Makefile.
${LIB} was wrong at dependency-parsing time, so dependencies for
libgcc_r*.a were wrong. This somehow worked right, except libgcc_r*.a
were always out of date.


50472 27-Aug-1999 peter

$Id$ -> $FreeBSD$


49865 16-Aug-1999 obrien

Purely cosmetic changes -- fix Id's


45464 08-Apr-1999 obrien

alpha/freebsd-elf.h has been merged with alpha/freebsd.h


45463 08-Apr-1999 obrien

Don't require gcc/config/${MACHINE_ARCH}/xm-freebsd.h when we already know
the contents of it. Instead create it, so all arch's are consistent.


45307 04-Apr-1999 obrien

Conditionalize one more i386'ism.


45306 04-Apr-1999 obrien

Attempt to creating the right ``tm.h'' file for the Alpha.


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)


45171 31-Mar-1999 obrien

Add bits we were getting from gnu/usr.bin/cc/Makefile.inc.


42450 09-Jan-1999 jdp

Switch to using ".So" as the extension for PIC object files rather
than ".so". The old extension conflicted with well-established
naming conventions for dynamically loadable modules.

The "clean" targets continue to remove ".so" files too, to deal with
old systems.


39998 06-Oct-1998 peter

Replace use of non-standard ld -O with a ld -o / mv combination as used
elsewhere in the tree. Binutils doesn't support the -O hack^H^H^H^H
extension. (actually, it ignores it for option compatability with some
other OS).


37488 08-Jul-1998 bde

Use a different hack for building libgcc2: `XCC= ${CC}' instead of
`XCC= <relative cc> -B<path to relative cc1> ...'. This is equivalent
when cc and cc1, etc. have just been bootstrapped by `make world'.
The relative versions normally won't work if the target system is
not binary compatible. Bootstrapping different versions of gcc
without going through `make world' is slightly more broken than
before.

Uniformized macro names (P1OBJS -> LIB1POBJS, etc.).

Don't give full paths to sources.


34814 23-Mar-1998 bde

Support building of libgcc.a without building all of gcc. This is
useful for bootstrapping. Compatible versions of gcc and cc1 should
should be installed before using this feature.


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.


18609 01-Oct-1996 peter

Resync the libgcc functions list with the 2.7.2.1 tree. We were building
a (now) defunct routine that no longer exists (causing an empty .o file),
and were missing some others. Some of the ones we were missing are no-ops
on the i386, so there are now 4 empty .o files.

(It seems that libc/quad has got some defunct functions now)


18441 21-Sep-1996 peter

Remove the partial support for a shared -lcc_int, since it's been unusable
for a fair while. cc1, cc1plus etc have been linked static for some time.


18390 19-Sep-1996 peter

Man the lifeboats! Tie down the hatches! Red alert! Activate gcc-2.7.2.1!

(the old cc has been tagged with "gcc_2_6_3_final" so we have a reference
point in case of unforseen disasters...)

This has the objc backend active, and I think I've managed to get the
f77 f2c support through in one piece, but I don't know fortran to test it.

A 'make world' change and libobjc commit will follow.

If you normally do 'make -DNOCLEAN world', do not do so this time, I know
it can fail with groff.

This version of gcc makes a **LOT** more warnings on our kernel.


15956 28-May-1996 phk

Make rules reentrant.


15679 07-May-1996 wosch

``mv'' -> ``mv -f''
``rm'' -> ``rm -f''
so mv/rm may not ask for confirmation if you are not root


7040 12-Mar-1995 phk

Don't install shared libgcc, we can't do it this way.
I will uuencode and check in to a "compat20" area the 2.0-RELEASE version.


7019 12-Mar-1995 phk

Remove a bunch of funtions that are in libc already.
Add back the shared libgcc, now that we don't use it to link against.


6933 06-Mar-1995 jkh

We can't bail out on generating the pic archive yet.
Submitted by: bde


6930 06-Mar-1995 phk

Don't make the shared libgcc. I don't belive we need the libgcc_pic.a
anymore, so I killed that as well.


4491 15-Nov-1994 phk

Integrated GCC-2.6.1 -> GCC-2.6.2 changes.

Notice that the libgcc DOESN'T change number, because there are no
changes.

Also now the gnu2bmake stuff is synchronized again.

I commit this so that others can test too.

You might want to postpone any "make worlds" until tomorrow, to
avoid any problems I didn't see in the first pass.

Thanks to Bruce for rounding up our changes to gcc.


4226 07-Nov-1994 phk

As pointed out by Paul Traina, we need the libs to be 261.0 not 26.1.


4113 03-Nov-1994 phk

----------------------------------
GCC-2.6.1 COMES TO FREEBSD-current
----------------------------------
Everybody needs to 'make world'.

Oakland, Nov 2nd 1994. In a surprise move this sunny afternoon, the release-
engineer for the slightly delayed FreeBSD-2.0, Poul-Henning Kamp (28),
decided to pull in the new version 2.6.1 of the GNU C-compiler.
The new version of the compiler was release today at noon, and hardly 9
hours later it was committed into the FreeBSD-current source-repository.
"It's is simply because we have had too much trouble with the version 2.6.0
of the compiler" Poul-Henning told the FreeBSD-Gazette, "we took a gamble
when we decided to use that as our compiler for the 2.0 release, but it
seems to pay of in the end now" he concludes.
The move has not been discussed on the "core" list at all, and will come as
a surprise for most Poul-Hennings peers. "I have only discussed it with
Jordan [J. K. Hubbard, the FreeBSD's resident humourist], and we agreed that
we needed to do it, so ... I did it!". After a breath he added with a grin:
"My email will probably get an all time 'disk-full' now!".
This will bring quite a flag-day to the FreeBSD developers, the patch-file
is almost 1.4 Megabyte, and they will have to run "make world" to get
entirely -current again. "Too bad, but we just had to do this." Was
the only comment from Poul-Henning to these problems.
When asked how this move would impact the 2.0 release-date, Poul-Hennings
face grew dark, he mumbled some very Danish words while he moved his fingers
in strange geometrical patterns. Immediately something ecclipsed the Sun, a
minor tremor shook the buildings, and the temperature fell significantly.
We decided not to pursure the question.

-----------
JOB-SECTION
-----------
Are you a dedicated GCC-hacker ?
We BADLY need somebody to look at the 'freebsd' OS in gcc, sanitize it and
carry the patches back to the GNU people. In particular, we need to get
out of the "i386-only" spot we are in now. I have the stuff to take a
gnu-dist into bmake-form, and will do that part.

Please apply to phk@freebsd.org

No Novice Need Apply.


1823 02-Aug-1994 phk

Here comes the right import of gcc-2.6.0.