History log of /freebsd-11-stable/contrib/gcc/config/i386/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
302408 08-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


/freebsd-11-stable/MAINTAINERS
/freebsd-11-stable/cddl
/freebsd-11-stable/cddl/contrib/opensolaris
/freebsd-11-stable/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/print
/freebsd-11-stable/cddl/contrib/opensolaris/cmd/zfs
/freebsd-11-stable/cddl/contrib/opensolaris/lib/libzfs
/freebsd-11-stable/contrib/amd
/freebsd-11-stable/contrib/apr
/freebsd-11-stable/contrib/apr-util
/freebsd-11-stable/contrib/atf
/freebsd-11-stable/contrib/binutils
/freebsd-11-stable/contrib/bmake
/freebsd-11-stable/contrib/byacc
/freebsd-11-stable/contrib/bzip2
/freebsd-11-stable/contrib/com_err
/freebsd-11-stable/contrib/compiler-rt
/freebsd-11-stable/contrib/dialog
/freebsd-11-stable/contrib/dma
/freebsd-11-stable/contrib/dtc
/freebsd-11-stable/contrib/ee
/freebsd-11-stable/contrib/elftoolchain
/freebsd-11-stable/contrib/elftoolchain/ar
/freebsd-11-stable/contrib/elftoolchain/brandelf
/freebsd-11-stable/contrib/elftoolchain/elfdump
/freebsd-11-stable/contrib/expat
/freebsd-11-stable/contrib/file
/freebsd-11-stable/contrib/gcc
/freebsd-11-stable/contrib/gcclibs/libgomp
/freebsd-11-stable/contrib/gdb
/freebsd-11-stable/contrib/gdtoa
/freebsd-11-stable/contrib/groff
/freebsd-11-stable/contrib/ipfilter
/freebsd-11-stable/contrib/ldns
/freebsd-11-stable/contrib/ldns-host
/freebsd-11-stable/contrib/less
/freebsd-11-stable/contrib/libarchive
/freebsd-11-stable/contrib/libarchive/cpio
/freebsd-11-stable/contrib/libarchive/libarchive
/freebsd-11-stable/contrib/libarchive/libarchive_fe
/freebsd-11-stable/contrib/libarchive/tar
/freebsd-11-stable/contrib/libc++
/freebsd-11-stable/contrib/libc-vis
/freebsd-11-stable/contrib/libcxxrt
/freebsd-11-stable/contrib/libexecinfo
/freebsd-11-stable/contrib/libpcap
/freebsd-11-stable/contrib/libstdc++
/freebsd-11-stable/contrib/libucl
/freebsd-11-stable/contrib/libxo
/freebsd-11-stable/contrib/llvm
/freebsd-11-stable/contrib/llvm/projects/libunwind
/freebsd-11-stable/contrib/llvm/tools/clang
/freebsd-11-stable/contrib/llvm/tools/lldb
/freebsd-11-stable/contrib/llvm/tools/llvm-dwarfdump
/freebsd-11-stable/contrib/llvm/tools/llvm-lto
/freebsd-11-stable/contrib/mdocml
/freebsd-11-stable/contrib/mtree
/freebsd-11-stable/contrib/ncurses
/freebsd-11-stable/contrib/netcat
/freebsd-11-stable/contrib/ntp
/freebsd-11-stable/contrib/nvi
/freebsd-11-stable/contrib/one-true-awk
/freebsd-11-stable/contrib/openbsm
/freebsd-11-stable/contrib/openpam
/freebsd-11-stable/contrib/openresolv
/freebsd-11-stable/contrib/pf
/freebsd-11-stable/contrib/sendmail
/freebsd-11-stable/contrib/serf
/freebsd-11-stable/contrib/sqlite3
/freebsd-11-stable/contrib/subversion
/freebsd-11-stable/contrib/tcpdump
/freebsd-11-stable/contrib/tcsh
/freebsd-11-stable/contrib/tnftp
/freebsd-11-stable/contrib/top
/freebsd-11-stable/contrib/top/install-sh
/freebsd-11-stable/contrib/tzcode/stdtime
/freebsd-11-stable/contrib/tzcode/zic
/freebsd-11-stable/contrib/tzdata
/freebsd-11-stable/contrib/unbound
/freebsd-11-stable/contrib/vis
/freebsd-11-stable/contrib/wpa
/freebsd-11-stable/contrib/xz
/freebsd-11-stable/crypto/heimdal
/freebsd-11-stable/crypto/openssh
/freebsd-11-stable/crypto/openssl
/freebsd-11-stable/gnu/lib
/freebsd-11-stable/gnu/usr.bin/binutils
/freebsd-11-stable/gnu/usr.bin/cc/cc_tools
/freebsd-11-stable/gnu/usr.bin/gdb
/freebsd-11-stable/lib/libc/locale/ascii.c
/freebsd-11-stable/sys/cddl/contrib/opensolaris
/freebsd-11-stable/sys/contrib/dev/acpica
/freebsd-11-stable/sys/contrib/ipfilter
/freebsd-11-stable/sys/contrib/libfdt
/freebsd-11-stable/sys/contrib/octeon-sdk
/freebsd-11-stable/sys/contrib/x86emu
/freebsd-11-stable/sys/contrib/xz-embedded
/freebsd-11-stable/usr.sbin/bhyve/atkbdc.h
/freebsd-11-stable/usr.sbin/bhyve/bhyvegc.c
/freebsd-11-stable/usr.sbin/bhyve/bhyvegc.h
/freebsd-11-stable/usr.sbin/bhyve/console.c
/freebsd-11-stable/usr.sbin/bhyve/console.h
/freebsd-11-stable/usr.sbin/bhyve/pci_fbuf.c
/freebsd-11-stable/usr.sbin/bhyve/pci_xhci.c
/freebsd-11-stable/usr.sbin/bhyve/pci_xhci.h
/freebsd-11-stable/usr.sbin/bhyve/ps2kbd.c
/freebsd-11-stable/usr.sbin/bhyve/ps2kbd.h
/freebsd-11-stable/usr.sbin/bhyve/ps2mouse.c
/freebsd-11-stable/usr.sbin/bhyve/ps2mouse.h
/freebsd-11-stable/usr.sbin/bhyve/rfb.c
/freebsd-11-stable/usr.sbin/bhyve/rfb.h
/freebsd-11-stable/usr.sbin/bhyve/sockstream.c
/freebsd-11-stable/usr.sbin/bhyve/sockstream.h
/freebsd-11-stable/usr.sbin/bhyve/usb_emul.c
/freebsd-11-stable/usr.sbin/bhyve/usb_emul.h
/freebsd-11-stable/usr.sbin/bhyve/usb_mouse.c
/freebsd-11-stable/usr.sbin/bhyve/vga.c
/freebsd-11-stable/usr.sbin/bhyve/vga.h
269948 13-Aug-2014 dim

Supplement r259111 by also using correct casts in gcc's emmintrin.h for
the first argument of the following builtin function:

* __builtin_ia32_psrlqi128() takes __v2di instead of __v4si

This should fix the following errors when building the graphics/webp
port with base gcc:

lossless_sse2.c:403: error: incompatible type for argument 1 of '__builtin_ia32_psrlqi128'
lossless_sse2.c:404: error: incompatible type for argument 1 of '__builtin_ia32_psrlqi128'

Reported by: Jos Chrispijn <ports@webrz.net>
MFC after: 3 days


265231 02-May-2014 pfg

gcc: fix strict alignment.

From the OpenBSD log:

x86-64 ABI requires arrays greater than 16 bytes to be aligned to
16byte boundary. However, GCC 16-byte aligns arrays of >=16 BITS,
not BYTES.

This diff improves bug detectability for code which has local arrays
of [16 .. 127] bits: in those cases SSP will now detect even 1-byte
overflows.

Obtained from: OpenBSD (CVS rev 1.4)
MFC after: 1 week


259111 08-Dec-2013 dim

Use correct casts in gcc's emmintrin.h for the first arguments of the
following builtin functions:

* __builtin_ia32_pslldi128() takes __v4si instead of __v8hi
* __builtin_ia32_psllqi128() takes __v2di instead of __v8hi
* __builtin_ia32_psradi128() takes __v4si instead of __v8hi

This should fix the following errors when building the LINT kernel with
gcc:

sys/crypto/aesni/aesni_wrap.c:191: error: incompatible type for argument 1 of
'__builtin_ia32_psradi128'
sys/crypto/aesni/aesni_wrap.c:195: error: incompatible type for argument 1 of
'__builtin_ia32_pslldi128'

MFC after: 3 days


259005 05-Dec-2013 pfg

gcc: Add -flax-vector-conversions

Obtained from: gcc 4.3 (rev. 120572, 120688; GPLv2)


258428 21-Nov-2013 pfg

gcc: another round of merges from the gcc pre-43 branch.

Bring The following revisions from the gcc43 branch[1]:

118360, 118361, 118363, 118576, 119820,
123906, 125246, and 125721.

They all have in common that the were merged long ago
into Apple's gcc and should help improve the general
quality of the compiler and make it easier to bring
new features from Apple's gcc42.

For details please review the additions to the files:
gcc/ChangeLog.gcc43
gcc/cp/ChangeLog.gcc43 (new, adds previous revisions)

Reference:
[1] http://gcc.gnu.org/viewcvs/gcc/trunk/?pathrev=126700

Obtained from: gcc pre4.3 (GPLv2) branch
MFC after: 3 weeks


255185 03-Sep-2013 jmg

add support to gcc for AES and PCLMUL intrinsics... This addes the
-maes option, but not the -mpclmul option as I ran out of bits in
the 32 bit flags field... You can -D__PCLMUL__ to get this, but it
won't be compatible w/ clang and modern gcc...

Reviewed by: -current, -toolchain


251212 01-Jun-2013 pfg

GCC: bring back experimental support for amdfam10/barcelona CPUs.

Initial support for the AMD amdfam10 chipsets has been available in the
gcc43 branch under GPLv2. AMD and some linux distributions (OpenSUSE) did
a backport of the amdfam10 support and made it available.

This is a revised subset of the support initially brought in in r236962
and later reverted. The collateral efects seem to have disappeared but
it is still recommended to set the CPUTYPE with caution.

Reviewed by: jkim (ages ago)
MFC after: 3 weeks


250392 08-May-2013 dim

For some reason, the gcc intrinsics header tmmintrin.h was imported with
two copies of itself pasted together. Remove the extraneous copy.

MFC after: 3 days


245952 26-Jan-2013 pfg

Clean some 'svn:executable' properties in the tree.

Submitted by: Christoph Mallon
MFC after: 3 days


242182 27-Oct-2012 kan

Follow clang lead and include mm_malloc.h only in hosted configurations.

This makes the use of intrinsics easier in kernel environment, according
to the submitter.

Requested by: jmg


238472 15-Jul-2012 kib

Pass --enable-new-dtags to the linker invocation by default. If
desired, one can turn off the generation of post-ELF standard dtags by
overriding it with --disable-new-dtags after the default switch.

Immediate effect of the change is that -rpath path is now stored both
in DT_RPATH and DT_RUNPATH tags, which is the right way to provide
rpath for dynamic linker supporting DT_RUNPATH per specification.

Reviewed by: kan
MFC after: 1 month


237021 13-Jun-2012 pfg

Revert r236962 - Experimental amdfam10/barcelona support.

The patches are unexpectedly causing gcc to fail while
building ports/graphics/ImageMagick even when the cpu
flags are not used.

Reported by: Andreas Tobler


236962 12-Jun-2012 pfg

Add experimental support for amdfam10/barcelona from the GCC 4.3 branch.

Initial support for the AMD barcelona chipsets has been available in the
gcc43 branch under GPLv2 but was not included when the Core 2 support
was brought to the system gcc.

AMD and some linux distributions (OpenSUSE) did a backport of the amdfam10
support and made them available. Unfortunately this is still experimental
and while it can improve performance, enabling the CPUTYPE may break some
C++ ports (like clang).

Special care was taken to make sure that the patches predate the GPLv3
switch upstream.

Tested by: Vladimir Kushnir
Reviewed by: mm
Approved by: jhb (mentor)
MFC after: 2 weeks


236137 27-May-2012 kib

Enable gnu hash generation for dynamic ELF binaries on x86.

Reviewed by: kan


226430 16-Oct-2011 stefanf

Adjust posix_memalign() prototype to match what we define in stdlib.h for
C++ compilation.

PR: standards/147210


219711 17-Mar-2011 mm

Backport missing tunings for -march=core2:
- enable extra 80387 mathematical constants (ext_80387_constants) [1]
- enable compare and exchange 16 bytes (cmpxchg16b) [2]

Verified against llvm-gcc (and apple gcc)

Obtained from: gcc-4.3 (ref. svn revs. 119260 [1], 121140 [2]; GPLv2)
MFC after: 2 weeks


219697 16-Mar-2011 mm

Fix -march/-mtune=native autodetection for Intel Core 2 CPUs

Obtained from: gcc 4.3 (partial rev. 119454; GPLv2)
MFC after: 2 weeks


219639 14-Mar-2011 mm

Backport SSSE3 instruction set support to base gcc.
Enabled by default for -march=core2

Obtained from: gcc 4.3 (rev. 117958, 121687, 121726, 123639; GPLv2)
MFC after: 2 weeks


219374 07-Mar-2011 mm

Backport Intel Core 2 and AMD Geode CPU types from gcc-4.3 (GPLv2)
These options are supported in this shape in all newer GCC versions.

PR: gnu/155308
Obtained from: gcc 4.3 (rev. 118090, 118973, 120846; GPLv2)
MFC after: 2 weeks


218895 20-Feb-2011 mm

Backport svn r124339 from gcc 4.3 and add opteron-sse3, athlon64-sse3
and k8-sse3 cpu-types for -march=/-mtune= gcc options.
These new cpu-types include the SSE3 instruction set that is supported
by all newer AMD Athlon 64 and Opteron processors.
All three cpu-types are supported by clang and all gcc versions
starting with 4.3 SVN rev 124339 (at that time GPLv2 licensed).

PR: gnu/154906
Discussed with: kib, kan, dim
Obtained from: gcc 4.3 (r124339, GPLv2 licensed)
MFC after: 2 weeks


217098 07-Jan-2011 kib

Make gcc emit the .note.GNU-stack section into the assembler files.

Reviewed by: kan


198344 21-Oct-2009 jhb

Change gcc to assume a default machine architecture of 486 instead of 386
on "i386". Doing it in the compiler is deemed to be less fragile then
attempting to provide a default -march setting via bsd.cpu.mk. FreeBSD
itself has not supported plain 386 CPUs since 5.x.

Suggested by: kan
Requested by: rdivacky
MFC after: 1 month


182579 31-Aug-2008 obrien

Turn cc_tools/Makefile and Makefile.tgt into a "linear" read. Shared
parts of the configuration aren't duplicated, and arch-specific exceptions
are made "in-place". Also clean up the FreeBSD/amd64 config a little.


181534 10-Aug-2008 das

Make -mfancy-math-387 the default on FreeBSD, as it is on most other
operating systems. Previously, gcc would inhibit the generation of
fsqrt, fsin, and several other floating point instructions, for the
benefit of the old in-kernel math emulator, which was removed over 5
years ago.


180079 28-Jun-2008 obrien

White space fixes.


180078 28-Jun-2008 obrien

Reduce diff to vendor.


171836 14-Aug-2007 kan

Update locally changed files to GCC 4.2.1.

Approved by: re (kensmith)


171835 14-Aug-2007 kan

Merge files that are no longer carry FreeBSD local changes.

Approved by: re (kensmith)


171826 14-Aug-2007 kan

This commit was generated by cvs2svn to compensate for changes in r171825,
which included commits to RCS files with non-trunk default branches.


169709 19-May-2007 kan

This commit was generated by cvs2svn to compensate for changes in r169708,
which included commits to RCS files with non-trunk default branches.


169706 19-May-2007 kan

Update configuration files for GCC 4.2.


169705 19-May-2007 kan

Merge local FreeBSD changes for -mno-align-long-strings.


169699 19-May-2007 kan

FreeBSD uses unchanged versions of this files.


169690 19-May-2007 kan

This commit was generated by cvs2svn to compensate for changes in r169689,
which included commits to RCS files with non-trunk default branches.


161660 26-Aug-2006 kan

Resolve conflicts after GCC 3.4.6 20060825 import.


148163 19-Jul-2005 obrien

Fix bug where GCC thought athlon-tbird had SSE support.


146915 03-Jun-2005 kan

Fix a typo from previos commit.


146909 03-Jun-2005 kan

Catch up with changes in BDX_OUTPUT_[LR]BRAC callers.


146908 03-Jun-2005 kan

Merge conflicts for GCC 3.4.4.


146906 03-Jun-2005 kan

Stock files.


146896 03-Jun-2005 kan

This commit was generated by cvs2svn to compensate for changes in r146895,
which included commits to RCS files with non-trunk default branches.


133583 12-Aug-2004 kan

This commit was generated by cvs2svn to compensate for changes in r133582,
which included commits to RCS files with non-trunk default branches.


132857 29-Jul-2004 kan

Remove obsolete ASM_FINAL_SPEC definition.

Reported by: green


132745 28-Jul-2004 kan

Merge FreeBSD changes into GCC 3.4.2-prerelease:
1.2 Tweaks to make this file live beside our hacked config.


132744 28-Jul-2004 kan

Merge r1.10 (-mno-align-long-strings) and r1.11 (make LONG_TYPE_SIZE
overridable from the command line).


132743 28-Jul-2004 kan

Merge r1.11 (-mno-align-long-strings).


132742 28-Jul-2004 kan

Update Amd64 MD bits for GCC 3.4.2-prerelease.


132741 28-Jul-2004 kan

Update i386 MD bits for GCC 3.4.2-prerelease.


132727 28-Jul-2004 kan

Use stock GCC versions on these files.


132719 28-Jul-2004 kan

This commit was generated by cvs2svn to compensate for changes in r132718,
which included commits to RCS files with non-trunk default branches.


130744 19-Jun-2004 obrien

Grrr. our rev 1.19 (FSF GCC rev 1.579) is causing some problems on 32-bit
systems. So only use the rev 1.19 (FSF GCC rev 1.579) change on 64-bit
systems.


130711 19-Jun-2004 obrien

Merge FSF GCC rev 1.579 change ((x86_output_mi_thunk): Don't pass MEM to
%P0, just SYMBOL_REF) into GCC 3.3.3. This fixes the bad C++ thunks code
generation building Firefox on AMD64.

Submitted by: Sean McNeil <sean@mcneil.com>


124152 05-Jan-2004 kan

This commit was generated by cvs2svn to compensate for changes in r124151,
which included commits to RCS files with non-trunk default branches.


123715 22-Dec-2003 kan

Fix ASM_OUTPUT_LABELREF to deal with TSL model prefixes GCC
started to use internally. They need to be stripped before
the name of the label or symbol is printed.


123561 16-Dec-2003 obrien

One might want to correctly generate 32-bit code on an Opteron.

Submitted by: peter


123546 15-Dec-2003 obrien

Consistently define __LP64__ on all our 64-bit platforms.


122194 07-Nov-2003 kan

Merge r1.11 (-mno-align-long-strings).


122193 07-Nov-2003 kan

Merge r1.10 (-mno-align-long-strings) and r1.11 (make LONG_TYPE_SIZE
overridable from the command line).


122190 07-Nov-2003 kan

No FreeBSD-local changes in these files.


122181 07-Nov-2003 kan

This commit was generated by cvs2svn to compensate for changes in r122180,
which included commits to RCS files with non-trunk default branches.


119414 24-Aug-2003 obrien

Reformat FBSD_{START,END}FILE_SPEC to FSF coding standards.
Use these in our i386, amd64, and alpha platforms.


119257 22-Aug-2003 kan

This commit was generated by cvs2svn to compensate for changes in r119256,
which included commits to RCS files with non-trunk default branches.


119016 17-Aug-2003 gordon

Tell the toolchain to look for rtld in /libexec instead of /usr/libexec.


117694 17-Jul-2003 obrien

This file became OBE when we went to GCC 3.


117479 12-Jul-2003 kan

Do not override FP rounding options for 32bit platforms. amd64 doesn't
need this.


117418 11-Jul-2003 kan

Update for 3.3.1-prerelease.


117417 11-Jul-2003 kan

Merge FreeBSD modifications into gcc 3.3.1-prerelease:
1.4 Look into right directory when linking 32-bit binaries.


117412 11-Jul-2003 kan

Merge FreeBSD changes into GCC 3.3.1-prerelease:
1.2 Tweaks to make this file live beside our hacked config.


117408 11-Jul-2003 kan

Merge FreeBSD modifications into gcc 3.3.1-prerelease:
1.11 -mno-align-long-strings.


117407 11-Jul-2003 kan

Merge FreeBSD modifications into gcc 3.3.1-prerelease:
1.10 -mno-align-long-strings.
1.11 Allow the specification of LONG_TYPE_SIZE on the command line.


117404 11-Jul-2003 kan

FreeBSD uses stock versions of these GCC files.


117396 11-Jul-2003 kan

This commit was generated by cvs2svn to compensate for changes in r117395,
which included commits to RCS files with non-trunk default branches.


114842 08-May-2003 obrien

I goofed in rev 1.59 (a.out support axing) and missed getting FUNCTION_PROFILER
fully clean. This resulted in inserted garbage into the produced assembly code
when the gcc -pg and -fPIC options are used together.

PR: i386/50598
Submitted by: Don Lewis <truckman@freebsd.org>


114083 26-Apr-2003 obrien

We're changing the platform name from x86[_-]86 to amd64.


114078 26-Apr-2003 obrien

Fix the LINK_SPEC. Our i386 32-bit emulation name changed.
We also need to look in the proper directory for 32-bit libs.


114077 26-Apr-2003 obrien

Remove the last vestiges (I hope) of the mixed ELF/a.out support.
As a plus we can use the stock CC1_SPEC and ASM_SPEC for AMD64.


113420 13-Apr-2003 kan

Teach gcc how to put unitialized data into BSS on FreeBSD.


110629 10-Feb-2003 kan

Merge FreeBSD modifications into gcc 3.2.2 release:
1.10 -mno-align-long-strings.
1.11 Allow the specification of LONG_TYPE_SIZE on the command line.


110628 10-Feb-2003 kan

Merge FreeBSD modifications into gcc 3.2.2 release:
1.11 -mno-align-long-strings.
Note the change 1.15 is not needed anymore.


110612 10-Feb-2003 kan

This commit was generated by cvs2svn to compensate for changes in r110611,
which included commits to RCS files with non-trunk default branches.


108173 22-Dec-2002 kan

Fix a bug in GCC which effectively prevents DEFAULT_PCC_STRUCT_RETURN from
having any effect. This restores a calling convention traditionally used
by FreeBSD/i386 and which is expected by a number of assembly sources
in libc.

Reviewed by: obrien
Approved by: re (rwatson)


107605 04-Dec-2002 obrien

Update HEAD with FSF branch 3.2.1 release files.


107604 04-Dec-2002 obrien

Use pure stock files.


107598 04-Dec-2002 obrien

Merge revs 1.10 (-mno-align-long-strings) and 1.11 (LONG_TYPE_SIZE override)
into Gcc 3.2.1 release.


107597 04-Dec-2002 obrien

Merge rev 1.11 (-mno-align-long-strings) into Gcc 3.2.1 release.


107591 04-Dec-2002 obrien

This commit was generated by cvs2svn to compensate for changes in r107590,
which included commits to RCS files with non-trunk default branches.


107286 26-Nov-2002 obrien

Remove our custom mixed ELF/a.out support. This means the base compiler
now only produce ELF objects. It also makes us closer to stock GCC, and
simplifies the set of changes we still need from stock GCC on every import.

Applauded by: peter
Approved by: re


104768 10-Oct-2002 kan

Merge FreeBSD modifications into gcc 3.2.1-prerelease:
1.10 -mno-align-long-strings
1.11 Allow the specification of LONG_TYPE_SIZE on the command line.

Approved by: obrien


104767 10-Oct-2002 kan

Merge FreeBSD modifications into gcc 3.2.1-prerelease:
1.11 -mno-align-long-strings

Approved by: obrien


104753 10-Oct-2002 kan

This commit was generated by cvs2svn to compensate for changes in r104752,
which included commits to RCS files with non-trunk default branches.


102802 01-Sep-2002 kan

Use the stock 3.2.1-prerelease file.

Approved by: obrien


102801 01-Sep-2002 kan

Merge FreeBSD modifications into gcc 3.2.1-prerelease:
1.10 -mno-align-long-strings
1.11 Allow the specification of LONG_TYPE_SIZE on the command line.

Approved by: obrien


102800 01-Sep-2002 kan

Merge FreeBSD modifications into gcc 3.2.1-prerelease:
1.11 -mno-align-long-strings

Approved by: obrien


102781 01-Sep-2002 kan

This commit was generated by cvs2svn to compensate for changes in r102780,
which included commits to RCS files with non-trunk default branches.


99884 12-Jul-2002 obrien

Fix C++ exception handling. GCC was using the older BSD DBX register numbers
rather than the ELF ABI/SVR4 ones in its DWARF unwinding.

Submitted by: Alexander Kabaev <ak03@gte.com>


99883 12-Jul-2002 obrien

When I decided to use a stock dbxout.c rather than merge the rev 1.2 change
(put the function stabs in traditional order on a.out, or gdb doesn't see
function local variables), I failed to remove the related knobs here.

Effectively were overrode the ELF-wide definition in elfos.h w/o providing
new infrastructure. This is what caused GDB to fail to debug applications
compiled and linked with -stabs. This is because GCC was unconditionally
inserts .stabs instruction for functions after the function body. GDB was
getting confused because what it thinks is function beginning address is
actually function ending address.

Submitted by: Alexander Kabaev <ak03@gte.com>


98599 21-Jun-2002 obrien

Tweaks to make these files live beside our hacked config.


98597 21-Jun-2002 obrien

Tweaks for the 64-bit compiler.


98572 21-Jun-2002 obrien

BDE prefers this organization.

Submitted by: bde


98096 10-Jun-2002 obrien

cvs -j -j gave me two copies of TARGET_VERSION and I didn't notice
it before committing.


97943 06-Jun-2002 obrien

Match the DBX_OUTPUT_MAIN_SOURCE_FILE_END definition in dbxelf.h.

Bug found by: bde


97912 06-Jun-2002 obrien

Allow the specification of LONG_TYPE_SIZE on the command line.

Submitted by: bde


97911 06-Jun-2002 obrien

Implement "-mno-align-long-strings" which prevents pessimization of strings
for space. -Os could do this, but it was easy to hack an MD version.
This saves a whole 32 bytes in boot2, so I think it is worth using it.
(keep how much worse gcc 3.2 will compile boot2...)

Submitted by: bde (minus gcc 3.2 commentary)


97910 06-Jun-2002 obrien

Didn't get them all in revision 1.50.


97908 06-Jun-2002 obrien

Fix excessive alignment for the aout case, and unbreak genassym for that case.
Our aout linker has alignment hacks and doesn't need gcc to do anything special.

Tested for a year by: bde :-)


97907 06-Jun-2002 obrien

Tidy do-while.

Requested by: bde


97827 04-Jun-2002 obrien

The brokenness in ix86_expand_clrstr is quite visible when you
compare the function with ix86_expand_movstr.

Submitted by: Tor Egge


97543 30-May-2002 obrien

Seems we are not ready for revision 1.8.


97532 30-May-2002 obrien

Make our default predefines ANSI clean.


96466 12-May-2002 obrien

do-while ASM_OUTPUT_ALIGN to enable its use in more places.


96447 12-May-2002 obrien

Fixes for building a.out bits.

Submitted by: bde


96331 10-May-2002 obrien

Remove files not part of GCC 3.1.


96294 09-May-2002 obrien

Use the stock (3.1 pre) file.


96293 09-May-2002 obrien

Use the stock file for now (but leave a note behind about our OBE changes).


96264 09-May-2002 obrien

This commit was generated by cvs2svn to compensate for changes in r96263,
which included commits to RCS files with non-trunk default branches.


96144 07-May-2002 obrien

Comment a knob.


96143 07-May-2002 obrien

The default ASM_OUTPUT_ADDR_DIFF_ELT will now handle our mixed a.out/ELF.


95810 30-Apr-2002 obrien

i386 MD bits for Gcc 3.1.

These are totally untested. Do these work? Hell if I know, I have yet to
bootstrap using these bits. But people want them, so here they are.


95349 24-Apr-2002 obrien

Style changes to reduce diff to things I did in the FSF repo.


95348 24-Apr-2002 obrien

Fix bug where we were loosing our platform-wide ASM_COMMENT_START
definition due to pollution in i386/unix.h.


93263 27-Mar-2002 obrien

Switch register numbers for DWARF2_DEBUG also.


91221 25-Feb-2002 obrien

Use the default 'ld' emulation rather than hard coding it.
For FreeBSD, 'ld' 2.12.0 uses a different emulation than in the past.
So this change makes the upgrade easier.


90286 06-Feb-2002 obrien

Use the stock [3.l-snap] version of this.


90285 06-Feb-2002 obrien

Use the stock [3.1-snap] file.


90284 06-Feb-2002 obrien

Use the stock file for now.

The changes from GCC 2.95.3 to 3.1 are large and it is hard to figure
out how to apply our changes. Once BDE can properly test GCC 3.1 he'll
add back in our changes.


90076 01-Feb-2002 obrien

This commit was generated by cvs2svn to compensate for changes in r90075,
which included commits to RCS files with non-trunk default branches.


89885 27-Jan-2002 peter

This commit was generated by cvs2svn to compensate for changes in r89884,
which included commits to RCS files with non-trunk default branches.


74478 19-Mar-2001 obrien

Merge gcc-2.95.3 changes onto mainline. Update FreeBSD changes to converge
with changes made in the FSF tree.


73325 02-Mar-2001 obrien

Change "NO_PROFILE_DATA" to "NO_PROFILE_COUNTERS" to match the commit by
the FSF/GCC people in the stock 2.97 source that is like our custom change
modulo the conditional compilation symbol.


73305 02-Mar-2001 obrien

Move the obvious bits of mixed ELF and a.out support down into this MD
header to reduce the difference of our sources to the stock GNU/FSF ones.
While the mix binary format support was nice to have in the FreeBSD MI
header as a frame work, it just clutters up too much and makes the FreeBSD
MI header more different from the FSF/GNU stock one than it needs to be.


72564 17-Feb-2001 obrien

Merge gcc-2.95.3-test3 changes onto mainline. Bump FreeBSD cc version.


70639 03-Jan-2001 obrien

Merge gcc.2.95.3-test1 changes onto mainline


68601 11-Nov-2000 obrien

Properly format the SUBTARGET_SWITCHES so that ``gcc -v --help'' prints
them out.

PR: 19326
Submitted by: Naohiko Tsuji <yakisoba@f2.dion.ne.jp>


60776 22-May-2000 obrien

Do not use DWARF2 unwinding mechanisms for C++ exceptions on all of our
platforms.


60731 20-May-2000 obrien

ASM_DECLARE_OBJECT_NAME and ASM_FINISH_DECLARE_OBJECT are ELF MI routines
to generate the special .type and .size directives which are used to set
the corresponding fields of the linker symbol table entries in the ELF
object file. As such they are not i386-specific and thus belong in our
MI header. Otherwise on the Alpha we don't properly give the type and
size of dynamic symbols. Bintuil versions past 2.9.1 warn of this and
w/o this change, `ld' generates a lot of warnings during a `make world'.


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.


56810 29-Jan-2000 obrien

Fix our -mprofiler-epilogue code.

"The problem is that egcs/gcc-2.95's reorganisation of the prologue and
epilogue code to use rtl instead of output_asm_insn() completely broke our
hooks. rtl is emitted in a different order, only after optimisation, while
output_asm_insn() is emitted immediately. rtl is presumably used so that
the prologue and epilogue can be optimised.

I couldn't find any good examples to copy. gcc's own
FUNCTION_BLOCK_PROFILER still uses output_asm_insn() and seems to be
completely broken. One of the XXX comments points to this.

IIRC, the hacks here basically arrange to emit magic label names; then when
the magic names are output, they are transformed into prologue and epilogue
code."

Submitted by: bde


56391 22-Jan-2000 obrien

Merge in the restore pic register fix from the vendor branch.

PR: 3441
Submitted by: Mark Diekhans <markd@Grizzly.COM>


56386 22-Jan-2000 obrien

This commit was generated by cvs2svn to compensate for changes in r56385,
which included commits to RCS files with non-trunk default branches.


54813 19-Dec-1999 obrien

Use symbolic values rather than constants in TARGET_DEFAULT.

Submitted by: bde on -current


54807 19-Dec-1999 obrien

Use a unified CPP_SPEC.


54665 16-Dec-1999 obrien

Fix my CPP_SPEC synatax screwup.

Totally pissed at self: obrien


54630 15-Dec-1999 obrien

Remove the defining of __i486__ baesd on TARGET_CPU_DEFAULT and !m386 or m486.


53661 24-Nov-1999 obrien

This commit was generated by cvs2svn to compensate for changes in r53660,
which included commits to RCS files with non-trunk default branches.


53658 24-Nov-1999 obrien

This commit was generated by cvs2svn to compensate for changes in r53657,
which included commits to RCS files with non-trunk default branches.


53655 24-Nov-1999 obrien

This commit was generated by cvs2svn to compensate for changes in r53654,
which included commits to RCS files with non-trunk default branches.


53177 15-Nov-1999 obrien

Add rev 1.2 profiling tweaks, to GCC 2.95.2.


53176 15-Nov-1999 obrien

Use the stock 2.95.2 file here.

I cannot determine if our previous (rev 1.2) changes for ObjC are still
appropriate.


52751 01-Nov-1999 obrien

This commit was generated by cvs2svn to compensate for changes in r52750,
which included commits to RCS files with non-trunk default branches.


52296 16-Oct-1999 obrien

Use the stock file here. I cannot determine if our previous (rev 1.2)
changes for ObjC are still appropriate.


52295 16-Oct-1999 obrien

Use stock file here.


52294 16-Oct-1999 obrien

Bring our profiling tweaks from rev 1.2 into GCC 2.95.1.


52285 16-Oct-1999 obrien

This commit was generated by cvs2svn to compensate for changes in r52284,
which included commits to RCS files with non-trunk default branches.


52269 15-Oct-1999 obrien

Register the fact we want expand_main_function() to invoke __main.


52142 12-Oct-1999 obrien

Remove a useless blank line, I accidently added.


52112 10-Oct-1999 obrien

Style cleanups:
* be consistant on protecting "#define FOO"s with "#undef FOO".
* be consistant that macro params are upper case, and commas are followed
by a space in the macro definition
* protect macro param expansion by ()'s
* break long lines
* line continuations chars to consistant column
* remove trailing spaces


52111 10-Oct-1999 obrien

Remove things common to all FreeBSD platforms. They will now live in a
FreeBSD wide config file.

This includes "WORD_SWITCH_TAKES_ARG" & "SWITCH_TAKES_ARG". Platforms
such as FreeBSD/MIPS will need to override these two defintions, but it
can #undef them and define them approapiately.


51411 19-Sep-1999 obrien

Bring our profiling tweaks into EGCS 1.1.2.


51410 19-Sep-1999 obrien

"COMMENT_BEGIN" is no longer used.


51409 19-Sep-1999 obrien

Support linking against libgcc_r.

Submitted by: Luoqi Chen <luoqi@chen.ml.org>


51408 19-Sep-1999 obrien

This should get us the same functionality we had with GCC 2.7.2.1.

* Support for our dual ELF/a.out building ability
* Our custom ASM_* definitions
* Our custom debugger and profiling related definitions
* Our custom STARTFILE/ENDFILE specs

* The stock EGCS 1.1.2 freebsd-elf.h file depended on
egcs-1.1.2/gcc/config/linux.h, which included "svr4.h". We will
include "svr4.h" via our "tm.h" definition. So add the few bits
from "linux.h" we actually needed.

* Using our current crtbegin.o/crtend.o we cannot support the DWARF2
unwinding mechanisms. In the future we will switch to the
non-sjlj-exceptions type exception machanism. However the `make world'
bootstrap problems with the EGCS crtstuff.c must be overcome first.

* Our a.out gas doesn't "know" to use NOP's for aligns while in the text
section. Thus the a.out alignment generation needed tweaking from
what we did with GCC 2.7.2. [from BDE]

* The definition of SUPPORTS_ONE_ONLY prevents the compiler from trying
to use "linkonce" sections for a.out. The definition of
NO_DBX_FUNCTION_END we had causes it to avoid .stabs symbols that the
assembler cannot handle for a.out. [from JDP]

* The previous "EXCEPTION_SECTION_FUNCTION" is the wrong name for EGCS.
It also needed tweaking for EGCS. [from JDP]

Also bump __FreeBSD_cc_version to 400002 in case we need to know we are
using EGCS at some point.


50654 30-Aug-1999 obrien

Use the stock EGCS 1.1.2 file here. Our previous changes are OBE.
(code change by rev 1.3 has been removed, and 1.2 is not needed since
contrib/gcc/cp/except.c is now the stock one)


50650 30-Aug-1999 obrien

Use the stock EGCS 1.1.2 file here. I cannot determine if our previous
changes for ObjC are still appropriate.


50398 26-Aug-1999 obrien

This commit was generated by cvs2svn to compensate for changes in r50397,
which included commits to RCS files with non-trunk default branches.


48744 10-Jul-1999 obrien

This commit was generated by cvs2svn to compensate for changes in r48743,
which included commits to RCS files with non-trunk default branches.


43052 22-Jan-1999 obrien

Update __FreeBSD__ and __FreeBSD_cc_version to be consistant with
__FreeBSD_version

Forgotten by: Eivind and Some anonymous release engineer


40736 29-Oct-1998 jdp

Per request from ache, change the numbering scheme of __FreeBSD_cc_version.
Its form is now like __FreeBSD_version, with the FreeBSD revision in
the top digits.


40715 29-Oct-1998 jdp

Add a new predefined preprocessor symbol "__FreeBSD_cc_version",
with a numeric value that describes the feature level of the
compiler. This can be used to check for the presence/absence of
FreeBSD-specific compiler features. The value is a decimal number
whose digits have the form VRRRRFF, where:

V = Compiler vendor. 0 (elided) means gcc.
RRRR = Vendor's version number, e.g., 2721 for the current
gcc version (2.7.2.1).
FF = FreeBSD-specific revision level. 00 means the stock
compiler from the vendor.

The value of "__FreeBSD_cc_version" is hard-coded in
"src/contrib/gcc/config/i386/freebsd.h" and must be incremented
when new FreeBSD-specific compiler features are added. I considered
simply picking up the value of FreeBSD_version from <osreldate.h>.
But that would break cross compiles of gcc.

PR: Part of the fix for gnu/8452
Suggested by: bde


38928 07-Sep-1998 jdp

Make profiling work for ELF. gprof now autodetects the format of
the executable file, so it will work for both a.out and ELF format
files. I have split the object format specific code into separate
source files. It's cleaner than it was before, but it's still
pretty crufty.

Don't cheat on your make world for this update. A lot of things
have to be rebuilt for it to work, including the compiler and all
of the profiled libraries.


37312 30-Jun-1998 bde

Fixed printf format errors.


35168 13-Apr-1998 peter

-pg was causing a link with -lc_r... :-]

Submitted by: Dmitry Khrustalev <dima@xyzzy.machaon.ru>
PR: 6287


34363 09-Mar-1998 peter

Both our a.out (hacked) gas and the binutils gas support .weak

Prompted by: bde


34349 09-Mar-1998 peter

Don't disable the use of $ in assembler labels.. It changes libstdc++
and libg++ so that they won't work with existing binaries (including
netscape!!).


34314 08-Mar-1998 peter

Spell -Bshareable correctly... :-]


34285 08-Mar-1998 peter

svr4.h defines ASM_IDENTIFY_GCC, but neglects to define
ASM_IDENTIFY_LANGUAGE. Use the osfrose.h method, because gdb assumes
'C' by default, so there's no need to further clutter the symbol table.


34284 08-Mar-1998 peter

Cosmetic cleanup for a.out asm generation.. Don't put the end-of-file
markers that the stabs-in-elf system uses.


34269 08-Mar-1998 peter

Put the function stabs in traditional order on a.out, or gdb doesn't see
function local variables.


34230 08-Mar-1998 peter

Add hooks for John Birrell's kernel thread support library.

Submitted by: John Birrell <jb@cimlogic.com.au>


34229 08-Mar-1998 peter

First round of changes to support generation of assembler for the old
a.out gas and the binutils gas (elf or a.out) with a single compiler.

This uses other infrastructure not yet committed, in order to support
both a.out and elf it needs to be able to get to both a.out and elf
gas, ld, libs, crt* etc. So for now, the support is pretty much dormant.

The new freebsd.h file is based on the old freebsd-elf.h file (which has a
long lineage, right back through linux and svr4 files). The change is
pretty dramatic from a gcc internals standpoint as it overrides a lot of
definitions in order to generate different output based on target mode.
There is potential for screw-ups, so please be on the lookout - gcc's
configuration mechanism wasn't really meant for this kind of thing.
It's believed to compile world etc just fine under both a.out and elf, can
handle global constructors and destructors, handles the differences in
a.out and elf stabs, and what sections things like exceptions go in.

The initial idea came from i386/osfrose.h which is a dual rose/elf format
target. These two are not as diverse as a.out and elf it would seem.

The cc front-end uses external configuration to determine default object
format (still being thrashed out, so read the source if you want to see
it so far), and has a '-aout' and '-elf' override command line switch.
There are some other internal switches that can be accessed, namely -maout,
-mno-aout, -munderscores and -mnounderscores. The underscore and local
symbol prefixing rules are controllable seperately to the output format.
(ie: it's possible to generate a.out without the _ prefixes on symbols and
also to generate elf with the _ prefixes. This isn't quite optimal, but
does seem to work pretty well, except the linkers don't always recognise
the local symbols without their normal names)

The default format is a.out (still), nobody should see any major changes.

With both elf and a.out tools and libraries installed:

[1:26pm]/tmp-223> cc -elf -o hello hello.c
peter@beast[1:27pm]/tmp-224> file hello
hello: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), dynamically linked, not stripped
[1:27pm]/tmp-225> ./hello
hello world!

[1:27pm]/tmp-226> cc -aout -o hello hello.c
[1:27pm]/tmp-227> file hello
hello: FreeBSD/i386 compact demand paged dynamically linked executable not stripped
1:27pm]/tmp-228> ./hello
hello world!

Since my co-conspirators put a lot of effort into this too, I'll add them
so they can share the blame^H^H^H^H^Hglory. :-)

Reviewed by: sos, jdp


28882 29-Aug-1997 peter

Merge in some of my changes with John's. I've used this to build
an ELF system. I'm not sure about some of the things here. We definately
need to go back and rationalize this.


28846 28-Aug-1997 jdp

Add the necessary defines to the freebsd-elf configuration so that
it can be built via BINFORMAT=elf in the environment. Most likely
some of the directory defines such as STANDARD_EXEC_PREFIX will
change again soon, as we settle on the proper locations for the
various components.

Note, the build still fails when it tries to compile libgcc2.c
using the ELF compiler, unless arrangements have been made for the
compiler to find the ELF assembler instead of the a.out assembler.


25733 12-May-1997 peter

The -pthread option was added to freebsd.h but missed from freebsd-elf.h


25400 03-May-1997 jb

Let gcc know about libc_r. Use -pthread to link against libc_r instead
of libc.


24758 09-Apr-1997 jdp

Make "gcc -shared" work properly for building shared libraries. An
up-to-date version of c++rt0.o is necessary for this to work right.

Closes PR gnu/3035: gcc -shared flag is broken.


24658 05-Apr-1997 jdp

Disallow "-p" when linking, with a diagnostic that recommends using
"-pg" and gprof(1) instead. FreeBSD does not support plain "-p" or
prof(1).

Plain "-p" is still allowed when just compiling. In the compile
phase, "-p" is identical "-pg". It is used by <bsd.lib.mk> for
building profiled object files.


24295 26-Mar-1997 jdp

Update the value of "__FreeBSD__" to 3 for the ELF compiler.


24257 25-Mar-1997 asami

-current is now 3.0. NOT a 2.2 candidate. :)


23076 24-Feb-1997 obrien

Undo rev 1.4 of freebsd.h and 1.2 freebsd-elf.h, where I added
_BSD4_4 as a predefined symbol. People on the lists generally didn't care
for it.


22809 16-Feb-1997 obrien

Add _BSD4_4 as a predefined symbol.
Peter Dufault (dufault@hda.com) suggested this is the most approate symbol
to use.

2.2-R candidate.


19194 26-Oct-1996 peter

Apparently this patch fixes the objc backend on the i386 platforms.
Without this, compiled programs die with FP errors.

This is originally credited to: jlemon@netcom.com (Jonathan Lemon), and
has been forwarded to me by quite a few of people.


18659 03-Oct-1996 jdp

Fix a bug that caused incorrect PIC code to be generated for exceptions.
The symptom was an assembler warning

"GOT relocation burb: `___EXCEPTION_TABLE__' should be global"

followed (sometimes) by a core dump. The fix makes the compiler
generate the correct GOTOFF addressing for that symbol, rather than the
GOT addressing it was emitting before.

Warning: There is still at least one serious bug in the i386 exception
code for PIC. The exception code that is generated clobbers the GOT
register (%ebx) and then tries to use it later. That leads to core
dumps at program execution time. I know where the problem is, but I do
not have a fix for it at this time. Until it is fixed, exceptions will
not work in PIC code. This is a general problem for all i386 platforms;
it is not specific to FreeBSD.


18604 01-Oct-1996 peter

Activate the .weak code generation for libgcc.a and g++ now that it works.


18349 18-Sep-1996 peter

Merge in freebsd-specific changes


18348 18-Sep-1996 peter

Add in hooks to produce assembler output suitable for binutils+elf
Obtained from: John Polstra <jdp@freebsd.org>, from his elfkit.


18337 18-Sep-1996 peter

This commit was generated by cvs2svn to compensate for changes in r18336,
which included commits to RCS files with non-trunk default branches.


18335 18-Sep-1996 peter

This commit was generated by cvs2svn to compensate for changes in r18334,
which included commits to RCS files with non-trunk default branches.