History log of /freebsd-11-stable/gnu/usr.bin/cc/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
360660 05-May-2020 dim

MFC r355940:

Move all sources from the llvm project into contrib/llvm-project.

This uses the new layout of the upstream repository, which was recently
migrated to GitHub, and converted into a "monorepo". That is, most of
the earlier separate sub-projects with their own branches and tags were
consolidated into one top-level directory, and are now branched and
tagged together.

Updating the vendor area to match this layout is next.


/freebsd-11-stable/MAINTAINERS
/freebsd-11-stable/contrib/compiler-rt
/freebsd-11-stable/contrib/libc++
/freebsd-11-stable/contrib/libunwind
/freebsd-11-stable/contrib/llvm
/freebsd-11-stable/contrib/llvm-project
/freebsd-11-stable/contrib/llvm-project/clang
/freebsd-11-stable/contrib/llvm-project/compiler-rt
/freebsd-11-stable/contrib/llvm-project/libcxx
/freebsd-11-stable/contrib/llvm-project/libcxx/include/__errc
/freebsd-11-stable/contrib/llvm-project/libcxx/include/errno.h
/freebsd-11-stable/contrib/llvm-project/libunwind
/freebsd-11-stable/contrib/llvm-project/lld
/freebsd-11-stable/contrib/llvm-project/lldb
/freebsd-11-stable/contrib/llvm-project/llvm
/freebsd-11-stable/contrib/llvm-project/openmp
/freebsd-11-stable/contrib/openmp
include/Makefile
/freebsd-11-stable/lib/clang/clang.build.mk
/freebsd-11-stable/lib/clang/clang.pre.mk
/freebsd-11-stable/lib/clang/libclang/Makefile
/freebsd-11-stable/lib/clang/liblldb/Makefile
/freebsd-11-stable/lib/clang/libllvm/Makefile
/freebsd-11-stable/lib/clang/libllvmminimal/Makefile
/freebsd-11-stable/lib/clang/lldb.pre.mk
/freebsd-11-stable/lib/clang/llvm.build.mk
/freebsd-11-stable/lib/clang/llvm.pre.mk
/freebsd-11-stable/lib/libblocksruntime/Makefile
/freebsd-11-stable/lib/libc++/Makefile
/freebsd-11-stable/lib/libc++experimental/Makefile
/freebsd-11-stable/lib/libc/arm/aeabi/Makefile.inc
/freebsd-11-stable/lib/libclang_rt/Makefile.inc
/freebsd-11-stable/lib/libcompiler_rt/Makefile.inc
/freebsd-11-stable/lib/libexecinfo/Makefile
/freebsd-11-stable/lib/libgcc_eh/Makefile.inc
/freebsd-11-stable/lib/libomp/Makefile
/freebsd-11-stable/share/doc/llvm/Makefile
/freebsd-11-stable/share/doc/llvm/clang/Makefile
/freebsd-11-stable/share/mk/bsd.clang-analyze.mk
/freebsd-11-stable/stand/i386/boot2/Makefile
/freebsd-11-stable/stand/libsa/Makefile
/freebsd-11-stable/usr.bin/clang/bugpoint/Makefile
/freebsd-11-stable/usr.bin/clang/clang-format/Makefile
/freebsd-11-stable/usr.bin/clang/clang-tblgen/Makefile
/freebsd-11-stable/usr.bin/clang/clang/Makefile
/freebsd-11-stable/usr.bin/clang/llc/Makefile
/freebsd-11-stable/usr.bin/clang/lld/Makefile
/freebsd-11-stable/usr.bin/clang/lldb-tblgen/Makefile
/freebsd-11-stable/usr.bin/clang/lldb/Makefile
/freebsd-11-stable/usr.bin/clang/lli/Makefile
/freebsd-11-stable/usr.bin/clang/llvm-ar/Makefile
/freebsd-11-stable/usr.bin/clang/llvm-as/Makefile
/freebsd-11-stable/usr.bin/clang/llvm-bcanalyzer/Makefile
/freebsd-11-stable/usr.bin/clang/llvm-cov/Makefile
/freebsd-11-stable/usr.bin/clang/llvm-cxxdump/Makefile
/freebsd-11-stable/usr.bin/clang/llvm-cxxfilt/Makefile
/freebsd-11-stable/usr.bin/clang/llvm-diff/Makefile
/freebsd-11-stable/usr.bin/clang/llvm-dis/Makefile
/freebsd-11-stable/usr.bin/clang/llvm-dwarfdump/Makefile
/freebsd-11-stable/usr.bin/clang/llvm-extract/Makefile
/freebsd-11-stable/usr.bin/clang/llvm-link/Makefile
/freebsd-11-stable/usr.bin/clang/llvm-lto/Makefile
/freebsd-11-stable/usr.bin/clang/llvm-lto2/Makefile
/freebsd-11-stable/usr.bin/clang/llvm-mc/Makefile
/freebsd-11-stable/usr.bin/clang/llvm-mca/Makefile
/freebsd-11-stable/usr.bin/clang/llvm-modextract/Makefile
/freebsd-11-stable/usr.bin/clang/llvm-nm/Makefile
/freebsd-11-stable/usr.bin/clang/llvm-objcopy/Makefile
/freebsd-11-stable/usr.bin/clang/llvm-objdump/Makefile
/freebsd-11-stable/usr.bin/clang/llvm-pdbutil/Makefile
/freebsd-11-stable/usr.bin/clang/llvm-profdata/Makefile
/freebsd-11-stable/usr.bin/clang/llvm-rtdyld/Makefile
/freebsd-11-stable/usr.bin/clang/llvm-symbolizer/Makefile
/freebsd-11-stable/usr.bin/clang/llvm-tblgen/Makefile
/freebsd-11-stable/usr.bin/clang/llvm-xray/Makefile
/freebsd-11-stable/usr.bin/clang/opt/Makefile
337477 08-Aug-2018 bdrewery

MFC r335733:

Don't use CCACHE for linking.

314573 03-Mar-2017 emaste

MFC r312899: add octeon+ as an alias for octeon in GCC & binutils

r208737 added support for the "mips64r2" architecture and "octeon" CPU,
and the saa/saad instructions.

Upstream binutils also added the "octeon+" CPU, and the saa/saad
instructions are only available in octeon+, not octeon. Since our
base system tool chain already accepts saa/saad with -march=octeon,
just allow octeon+ as an alias.

This allows the use of octeon+ in kernel config files, for use with both
external tool chain and in-tree GCC/binutils.

Also includes GCC FBSD_CC_VER bump (r313041 in HEAD)

PR: 216516
Sponsored by: The FreeBSD Foundation

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
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
301936 16-Jun-2016 bdrewery

WITH_META_MODE: Don't expect a .meta file for side-effect generated files.

This is the same as r301285.

Approved by: re (implicit)
Sponsored by: EMC / Isilon Storage Division


301934 16-Jun-2016 bdrewery

Convert to new FAST_DEPEND syntax for guessed dependencies.

This OBJS_DEPEND_GUESS is needed since each target gets its
own .depend.target.o file but also because it is spelled
.meta.target.o with WITH_META_MODE. The OBJS_DEPEND_GUESS
will apply the dependency if the required file is missing.

Also remove redundant .c files while here to avoid prolems with
targets using .ALLSRC and getting multiple source files.

Approved by: re (implicit)
Sponsored by: EMC / Isilon Storage Division


301402 04-Jun-2016 bdrewery

DIRDEPS_BUILD: Update GCC dependencies.

Sponsored by: EMC / Isilon Storage Division


300822 27-May-2016 cem

gcc42: Fix minor C99 parse bug

DR #289[0] came down and gcc4.2.1 was on the wrong side of history.
Partially revert GCC r42574 (just remove the error) to rectify the parse
bug to match Clang and other compliant C99 compilers.

An example declaration gcc tripped on before this fix:

void foobar(int [static 1]);

An example declaration gcc did not trip on before this fix:

void foobar(int name[static 1]);

Bump __FreeBSD_cc_version.

[0]: http://www.open-std.org/JTC1/SC22/WG14/www/docs/dr_289.htm

Reported by: allanjude
Sponsored by: EMC / Isilon Storage Division


300347 21-May-2016 bdrewery

WITH_META_MODE: Avoid rebuilds of cc_tools during target build.

This is the same as r299289 and r297997.

Sponsored by: EMC / Isilon Storage Division


300119 18-May-2016 imp

Make armv6 hard float abi by default. Kill armv6hf.
Allow CPUTYPE=soft to build the current soft-float abi libraries.
Add UPDATING entry to announce this.

Approved by: re@ (gjb)


298218 18-Apr-2016 bdrewery

Follow-up r297842: Rework header generation to fix always rebuilding.

This reworks the handling of common headers to just include the needed
logic rather than invoke MAKE. This avoids the problem listed in r297842
and avoids other dependency tracking issues.

Pointyhat to: bdrewery
Reported by: Nikolai Lifanov <lifanov@mail.lifanov.com>
Sponsored by: EMC / Isilon Storage Division


296417 05-Mar-2016 dim

Upgrade our copies of clang, llvm, lldb and compiler-rt to 3.8.0
release.

Please note that from 3.5.0 onwards, clang, llvm and lldb require C++11
support to build; see UPDATING for more information.

Release notes for llvm and clang will soon be available here:
<http://llvm.org/releases/3.8.0/docs/ReleaseNotes.html>
<http://llvm.org/releases/3.8.0/tools/clang/docs/ReleaseNotes.html>

Thanks to Ed Maste, Roman Divacky, Davide Italiano and Antoine Brodin
for their help.

Relnotes: yes


295989 24-Feb-2016 bdrewery

DIRDEPS_BUILD: Regenerate without local dependencies.

These are no longer needed after the recent 'beforebuild: depend' changes
and hooking DIRDEPS_BUILD into a subset of FAST_DEPEND which supports
skipping 'make depend'.

Sponsored by: EMC / Isilon Storage Division


291348 26-Nov-2015 bdrewery

Use LIBEXECDIR for /usr/libexec.

MFC after: 1 week
Sponsored by: EMC / Isilon Storage Division


291320 25-Nov-2015 bdrewery

META MODE: Don't create .meta files when symlinking sources into the obj directory.

Tracking these leads to situations where meta mode will consider the
file to be out of date if /bin/sh or /bin/ln are newer than the source
file. There's no reason for meta mode to do this as make is already
handling the rebuild dependency fine.

Sponsored by: EMC / Isilon Storage Division


290494 07-Nov-2015 bapt

Improve collation string and locales support

Merge collation support from Illumos and DragonflyBSD.

Locales are now generated with the new localedef(1) tool from CLDR POSIX files.
The generated files are now identified as "BSD 1.0" format.

The libc now only read "BSD 1.0" locales definitions, all other version will be
set to "C"
The localedef(1) tool has been imported from Illumos and modified to use tree(3)
instead of the CDDL avl(3)
A set of tool created by edwin@ and extended by marino@ for dragonfly has been
added to be able to generate locales and the Makefiles from the vanilla CLDR
unicode databases + a universal UTF-8 charmap (by marino@)
Update the locales to unicode v27
Given our regex(3) does not support multibyte (yet) it has been forced to always
use locale C
Remove now unused colldef(1) and mklocale(1)
Finish implementing the numeric BSD extension for ctypes
The number of supported locales has grown from 175 to 250 locales. Among the new
locales: 6 Arabic locales (AE EG JO MA QA SA), Different variations of spanish
locales.
Added new 3 components locales for mn_Cyrl_MN, sr_Cyrl_RS sr_Latn_RS,
zh_Hans_CN, zh_Hant_HK and zh_Hant_TW. Some aliases has been for 2 components
version when possible.

Thanks: Garrett D'Amore (Illumos) who made sure all his work was done under
BSD license!, Edwin Groothuis (edwin@) for the work he made on tools to be able
to generate locales definition usable in freebsd sources out of vanilla CLDR
definitions, John Marino (DragonflyBSD) who first merge the Illumos work into
Dragonfly and spent hours tracking down bugs.


290102 28-Oct-2015 bapt

Merge mpsutil(8) branch

mpsutil(8)/mprutil(8) are new utilities for managing LSI Fusion-MPT
2/3 controllers (mps(4) and mpr(4))

For now only informational commands have been implemented.

This utility has been written by scottl@ [1] and polished by myself[2]

Submitted by: scottl
Discussed with: scottl
Relnotes: yes
Sponsored by: Netflix [1]
Sponsored by: Gandi.net [2]


289393 15-Oct-2015 bdrewery

Add more SUBDIR_PARALLEL.

MFC after: 3 weeks
Sponsored by: EMC / Isilon Storage Division


289380 15-Oct-2015 bdrewery

Remove empty directory c++filt leftover from r286332.

Sponsored by: EMC / Isilon Storage Division


289379 15-Oct-2015 bdrewery

Remove directories disconnected since r169718.

MFC after: 1 week
Sponsored by: EMC / Isilon Storage Division


288943 06-Oct-2015 dim

Upgrade our copies of clang, llvm, lldb, compiler-rt and libc++ to 3.7.0
release.

Please note that from 3.5.0 onwards, clang, llvm and lldb require C++11
support to build; see UPDATING for more information.

Release notes for llvm and clang can be found here:
<http://llvm.org/releases/3.7.0/docs/ReleaseNotes.html>
<http://llvm.org/releases/3.7.0/tools/clang/docs/ReleaseNotes.html>

Thanks to Ed Maste, Andrew Turner and Antoine Brodin for their help.

Exp-run: antoine
Relnotes: yes


288267 26-Sep-2015 bdrewery

Remove redundant .NOPATH.

All of these are already in CLEANFILES which is added to .NOPATH in bsd.obj.mk.

Sponsored by: EMC / Isilon Storage Division


288226 25-Sep-2015 bdrewery

META_MODE: Remove DEP_RELDIR from Makefile.depend files.

This has not been needed since r284171 in projects/bmake.

Sponsored by: EMC / Isilon Storage Division


286332 05-Aug-2015 emaste

Remove old GNU Binutils tools now provided by ELF Tool Chain

Reviewed by: bapt, brooks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D3238


284345 13-Jun-2015 sjg

Add META_MODE support.

Off by default, build behaves normally.
WITH_META_MODE we get auto objdir creation, the ability to
start build from anywhere in the tree.

Still need to add real targets under targets/ to build packages.

Differential Revision: D2796
Reviewed by: brooks imp


284289 11-Jun-2015 sjg

Misc fixes from projects/bmake

Differential Revision: D2748
Reviewed by: brooks imp


282285 30-Apr-2015 emaste

Add ELF Tool Chain's c++filt to the build

Differential Revision: https://reviews.freebsd.org/D2408
Reviewed by: brooks, imp
Sponsored by: The FreeBSD Foundation


276551 02-Jan-2015 bapt

Remove GNU texinfo from base along with all info pages.

To be able to info pages consider installing texinfo from ports print/texinfo or
via pkg: pkg install texinfo

Differential Revision: https://reviews.freebsd.org/D1409
Reviewed by: emaste, imp (previous version)
Relnotes: yes


276479 31-Dec-2014 dim

Upgrade our copy of clang, llvm and lldb to 3.5.0 release.

Please note that this version now requires C++11 support to build; see
UPDATING for more information.

Release notes for llvm and clang can be found here:
<http://llvm.org/releases/3.5.0/docs/ReleaseNotes.html>
<http://llvm.org/releases/3.5.0/tools/clang/docs/ReleaseNotes.html>

Thanks to Ed Maste, Roman Divacky, Andrew Turner, Justin Hibbits and
Antoine Brodin for their invaluable help with this import.

Approved by: portmgr (antoine)
MFC after: 1 month


275804 15-Dec-2014 emaste

Remove empty generated file upon gperf failure

Prior to this change the build could fail as follows, if gperf is not
available (or fails):

- make(1) stops due to the gperf error, but an empty target file
(cfns.h) is still created
- the empty cfns.h is newer than the source cfns.gperf so it is not
regenerated on subsequent builds
- the gcc build fails (undefined reference to libc_name_p)

Sponsored by: The FreeBSD Foundation
MFC after: 3 days


272350 01-Oct-2014 andrew

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


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.


268351 07-Jul-2014 marcel

Remove ia64.

This includes:
o All directories named *ia64*
o All files named *ia64*
o All ia64-specific code guarded by __ia64__
o All ia64-specific makefile logic
o Mention of ia64 in comments and documentation

This excludes:
o Everything under contrib/
o Everything under crypto/
o sys/xen/interface
o sys/sys/elf_common.h

Discussed at: BSDcan


265420 06-May-2014 imp

Use src.opts.mk in preference to bsd.own.mk except where we need stuff
from the latter.


264400 13-Apr-2014 imp

NO_MAN= has been deprecated in favor of MAN= for some time, go ahead
and finish the job. ncurses is now the only Makefile in the tree that
uses it since it wasn't a simple mechanical change, and will be
addressed in a future commit.


263660 23-Mar-2014 andrew

Add a new ARM TARGET_ARCH, armv6hf. This is considered experimental.

This targets the existing ARMv6 and ARMv7 SoCs that contain a VFP unit.
This is an optional coprocessors may not be present in all devices, however
it appears to be in all current SoCs we support.

armv6hf targets the VFP variant of the ARM EABI and our copy of gcc is too
old to support this. Because of this there are a number of WITH/WITHOUT
options that are unsupported and must be left as the default value. The
options and their required value are:
* WITH_ARM_EABI
* WITHOUT_GCC
* WITHOUT_GNUCXX

In addition, without an external toolchain, the following need to be left
as their default:
* WITH_CLANG
* WITH_CLANG_IS_CC

As there is a different method of passing float and double values to
functions the ABI is incompatible with existing armv6 binaries. To use
this a full rebuild of world is required. Because no floating point values
are passed into the kernel an armv6 kernel with VFP enabled will work with
an armv6hf userland and vice versa.


258507 24-Nov-2013 pfg

gcc: Missing makefile changes for r258501.

pointyhat: me


258445 21-Nov-2013 andreast

Fix cross compilation after r258428.

Reviewed by: pfg


256298 10-Oct-2013 dim

Bump OS versions in the toolchain triples to 11.0, and bump the
__FreeBSD_cc_version predefined macros in clang and gcc.

Approved by: re (gjb)


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, ...


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


251480 07-Jun-2013 pfg

gcc: install AMD intrinsics header ammintrin.h

This file was included in the changes from r251212 and originated
in the pre-GPLv3 gcc43 branch.

MFC after: 2 weeks


250393 08-May-2013 dim

When gcc 4.2.0 was imported, the 3DNow intrinsics header <mm3dnow.h> was
not added to the list of intrinsics headers to install, so belatedly (5
years :) add it.

MFC after: 1 week


249880 25-Apr-2013 rpaulo

Remove the Fortran directories.


245898 25-Jan-2013 andrew

bsd.own.mk needs to be included before Makefil.inc so MK_ARM_EABI is defined


245882 24-Jan-2013 brooks

Reorder so that NO_MAN is declared before bsd.own.mk is included and thus
has an effect (not installed a g++.1 manpage over the g++.1(.gz) link
created in ../cc).


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.


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


241298 06-Oct-2012 marcel

Add support for bmake. This includes:
1. Don't do upgrade_checks when using bmake. As long as we have WITH_BMAKE,
there's a bootstrap complication in ths respect. Avoid it. Make the
necessary changes to have upgrade_checks work wth bmake anyway.
2. Remove the use of -E. It's not needed in our build because we use ?= for
the respective variables, which means that we'll take the environment
value (if any) anyway.
3. Properly declare phony targets as phony as bmake is a lot smarter (and
thus agressive) about build avoidance.
4. Make sure CLEANFILES is complete and use it on .NOPATH. bmake is a lot
smarter about build avoidance and should not find files we generate in
the source tree. We should not have files in the repository we want to
generate, but this is an easier way to cross this hurdle.
5. Have behavior under bmake the same as it is under make with respect to
halting when sub-commands fail. Add "set -e" to compound commands so
that bmake is informed when sub-commands fail.
6. Make sure crunchgen uses the same make as the rest of the build. This
is important when the make utility isn't called make (but bmake for
example).
7. While here, add support for using MAKEOBJDIR to set the object tree
location. It's the second alternative bmake looks for when determining
the actual object directory (= .OBJDIR).

Submitted by: Simon Gerraty <sjg@juniper.net>
Submitted by: John Van Horne <jvanhorne@juniper.net>


239272 15-Aug-2012 gonzo

Merging of projects/armv6, part 3

r238211:
Support TARGET_ARCH=armv6 and TARGET_ARCH=armv6eb

This adds a new TARGET_ARCH for building on ARM
processors that support the ARMv6K multiprocessor
extensions. In particular, these processors have
better support for TLS and mutex operations.

This mostly touches a lot of Makefiles to extend
existing patterns for inferring CPUARCH from ARCH.
It also configures:
* GCC to default to arm1176jz-s
* GCC to predefine __FreeBSD_ARCH_armv6__
* gas to default to ARM_ARCH_V6K
* uname -p to return 'armv6'
* make so that MACHINE_ARCH defaults to 'armv6'
It also changes a number of headers to use
the compiler __ARM_ARCH_XXX__ macros to configure
processor-specific support routines.

Submitted by: Tim Kientzle <kientzle@freebsd.org>


238255 08-Jul-2012 nwhitehorn

After the binutils 2.17.50 import, the assembler supports AS_REL16
relocations.


234782 29-Apr-2012 kib

Add src.conf option WITH_SHARED_TOOLCHAIN to enable building the
toolchain binaries as dynamically linked. Option is disabled by
default.

Reviewed by: ru (previous version)
MFC after: 2 weeks


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.


232322 29-Feb-2012 dim

Add a WITH_CLANG_IS_CC option for src.conf(5), disabled by default, that
installs clang as /usr/bin/cc, /usr/bin/c++ and /usr/bin/cpp.

Note this does *not* disable building and installing gcc, which will
still be available as /usr/bin/gcc, /usr/bin/g++ and /usr/bin/gcpp. If
you want to disable gcc completely, you must use WITHOUT_GCC.

MFC after: 2 weeks


231852 17-Feb-2012 bz

Merge multi-FIB IPv6 support from projects/multi-fibv6/head/:

Extend the so far IPv4-only support for multiple routing tables (FIBs)
introduced in r178888 to IPv6 providing feature parity.

This includes an extended rtalloc(9) KPI for IPv6, the necessary
adjustments to the network stack, and user land support as in netstat.

Sponsored by: Cisco Systems, Inc.
Reviewed by: melifaro (basically)
MFC after: 10 days


231620 14-Feb-2012 gonzo

Enable TLS support for ARM toolchain

Reviewed by: cognet


226702 24-Oct-2011 obrien

* Don't give the impression that this compiler is GPLv3.
(It is "well known" that GCC 4.2.2 is GPLv3.)
* Don't give the impression that this compiler isn't "trustable".
* Fix dependency nit.


226519 18-Oct-2011 dim

Update gcc's __FreeBSD__ and __FreeBSD_cc_version macros for FreeBSD 10.


223758 04-Jul-2011 attilio

With retirement of cpumask_t and usage of cpuset_t for representing a
mask of CPUs, pc_other_cpus and pc_cpumask become highly inefficient.

Remove them and replace their usage with custom pc_cpuid magic (as,
atm, pc_cpumask can be easilly represented by (1 << pc_cpuid) and
pc_other_cpus by (all_cpus & ~(1 << pc_cpuid))).

This change is not targeted for MFC because of struct pcpu members
removal and dependency by cpumask_t retirement.

MD review by: marcel, marius, alc
Tested by: pluknet
MD testing by: marcel, marius, gonzo, andreast


222813 07-Jun-2011 attilio

etire the cpumask_t type and replace it with cpuset_t usage.

This is intended to fix the bug where cpu mask objects are
capped to 32. MAXCPU, then, can now arbitrarely bumped to whatever
value. Anyway, as long as several structures in the kernel are
statically allocated and sized as MAXCPU, it is suggested to keep it
as low as possible for the time being.

Technical notes on this commit itself:
- More functions to handle with cpuset_t objects are introduced.
The most notable are cpusetobj_ffs() (which calculates a ffs(3)
for a cpuset_t object), cpusetobj_strprint() (which prepares a string
representing a cpuset_t object) and cpusetobj_strscan() (which
creates a valid cpuset_t starting from a string representation).
- pc_cpumask and pc_other_cpus are target to be removed soon.
With the moving from cpumask_t to cpuset_t they are now inefficient
and not really useful. Anyway, for the time being, please note that
access to pcpu datas is protected by sched_pin() in order to avoid
migrating the CPU while reading more than one (possible) word
- Please note that size of cpuset_t objects may differ between kernel
and userland. While this is not directly related to the patch itself,
it is good to understand that concept and possibly use the patch
as a reference on how to deal with cpuset_t objects in userland, when
accessing kernland members.
- KTR_CPUMASK is changed and now is represented through a string, to be
set as the example reported in NOTES.

Please additively note that no MAXCPU is bumped in this patch, but
private testing has been done until to MAXCPU=128 on a real 8x8x2(htt)
machine (amd64).

Please note that the FreeBSD version is not yet bumped because of
the upcoming pcpu changes. However, note that this patch is not
targeted for MFC.

People to thank for the time spent on this patch:
- sbruno, pluknet and Nicholas Esborn (nick AT desert DOT net) tested
several revision of the patches and really helped in improving
stability of this work.
- marius fixed several bugs in the sparc64 implementation and reviewed
patches related to ktr.
- jeff and jhb discussed the basic approach followed.
- kib and marcel made targeted review on some specific part of the
patch.
- marius, art, nwhitehorn and andreast reviewed MD specific part of
the patch.
- marius, andreast, gonzo, nwhitehorn and jceel tested MD specific
implementations of the patch.
- Other people have made contributions on other patches that have been
already committed and have been listed separately.

Companies that should be mentioned for having participated at several
degrees:
- Yahoo! for having offered the machines used for testing on big
count of CPUs.
- The FreeBSD Foundation for having sponsored my devsummit attendance,
which has been instrumental.
- Sandvine for having offered offices and infrastructure during
development.

(I really hope I didn't forget anyone, if it happened I apologize in
advance).


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@


220630 14-Apr-2011 dim

In r219639, SSSE3 instruction set support was backported to our gcc.

Therefore, we also need to install the new tmmintrin.h header containing
the related intrinsic functions, similar to xmmintrin.h, emmintrin.h,
etc.

Reported by: George Liaskos <geo.liaskos@gmail.com>


219534 11-Mar-2011 marius

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.


218822 18-Feb-2011 dim

Merge binutils 2.17.50 to head. This brings a number of improvements to
x86 CPU support, better support for powerpc64, some new directives, and
many other things. Bump __FreeBSD_version, and add a note to UPDATING.

Thanks to the many people that have helped to test this.

Obtained from: projects/binutils-2.17


217128 07-Jan-2011 tijl

Remove unused support for 64 bit long on 32 bit architectures.

It was used mainly to discover and fix some 64-bit portability problems
before 64-bit arches were widely available.

Discussed with: bde
Approved by: kib (mentor)


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.


216127 02-Dec-2010 nwhitehorn

Unbreak amd64<->i386 cross builds.


216113 02-Dec-2010 nwhitehorn

The driver-XXX.c files used for host CPU detection with -march=native
should not be compiled in the cross-tools case (where -march=native makes
no sense). This fixes cross-building x86 toolchains on non-x86 systems.


215439 17-Nov-2010 tijl

Let gcc and ld know where to find 32 bit libraries on amd64.

Reviewed by: arch@
Approved by: kib (mentor)


215276 14-Nov-2010 imp

We need to add powerpc64->powerpc translations (I knew I hated copying
this code in the first place).

Also MACHINE_ARCH powerpc is 32-bit, not MACHINE_CPUARCH == powerpc.

Submitted by: nathanw


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


208758 02-Jun-2010 jmallett

Fix build for O32 systems without a TARGET_CPUTYPE defined. We must default to
MIPS-III because FreeBSD relies on a number of MIPS-III features; the ABI
default would be MIPS-I which we don't intend to support. Our old default
before I switched to using the ABI default was MIPS32.


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


204771 05-Mar-2010 imp

Make little endian compiles produce little endian binaries on mips.

Submitted by: neel@


201849 08-Jan-2010 imp

Back-merge (by hand) r195668:

r195668 | gonzo | 2009-07-13 17:01:12 -0600 (Mon, 13 Jul 2009) | 3 lines
- Get rid of ugly TARGET_CPU_DEFAULT default. 16 is MASK_DSP
and was set there due to my ignroance.


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)


189834 14-Mar-2009 das

Fix build breakage due to the interplay between r189801 and r189824.
In particular, vendor sources that aren't ready for gnu99 should
still be compiled with gnu89. (Before r189824, these would have
generated warnings if you tried to compile them in gnu99 mode,
but the warnings went unheeded due to -Wno-error.)


185777 08-Dec-2008 kib

Add strndup(3) prototype to string.h.

This change was erronously ommitted from the r185690, and attempt
to simply add the prototype to string.h has revealed that several
contributed programs defined local prototypes for strndup(), controlled
by autoconfed config.h. So, manually change #undef HAVE_STRNDUP to
#define HAVE_STRNDUP 1. Next import of the corresponding program would
regenerate config.h, overriding the changes in this commit.

No objections from: kan


182627 01-Sep-2008 obrien

Add FreeBSD/MIPS support to GCC.


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.


173731 18-Nov-2007 ache

Use LC_ALL=C before awk generating "optionlist"
(and before two other awk calls, just to be safe)
Without it sorting is broken for locales with ASCII collating equivalence
like (v,w) in sv_SE


172592 12-Oct-2007 obrien

Welcome FreeBSD 8.


172473 08-Oct-2007 marius

Disable TLS for arm and sparc64 here as binutils 2.15 predate GNU TLS
support for these. This is in line with gnu/lib/libgomp/config.h and
gnu/lib/libstdc++/config.h.

Reviewed by: cognet, obrien
Approved by: re (kensmith)


172234 18-Sep-2007 cognet

Make gcc default to big endian when building it for a big endian target.
This was lost while migrating to gcc4.

Reported by: Michael Reifenberger <mike at Reifenberger dot com>
Approved by: re (blanket)


170039 28-May-2007 kan

Fix compiles when user chooses to disable both ObjC and C++ support in
GCC.

Reported by: bz


169828 21-May-2007 ru

Back out the addition of -static to LDFLAGS; I'm pretty confident
that the build failure was caused by a computer/sources date/time
mismatch that caused GCC tools to be mistakenly rebuilt again at
an inappropriate time during buildworld, re-linking them against
new libraries instead of host's installed libraries and thus making
them not runnable by the host. Normally they are only built in
the early stage of buildworld (build-tools) that links them against
shared libraries of the host, but if either the system clock or
modification date/time on source files is set incorrectly, make(1)
can be foolished into thinking that tools are stale and will rebuild
them again, now in the "target" environment which is not suitable
for building helper apps that are to be run during buildworld.

OK'ed by: kan


169740 19-May-2007 scottl

Work-around for upgrading from a pre-symbol-versioned world.

Blame-to: cperciva


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.


167471 12-Mar-2007 kan

Minor Makefile cleanup. Do not use Makefile variables named 'version' and
'target'. Latter is problematic in particular as apparently FreeBSD's
bsd.prog.mk re-defines it under some circumstances. This causes an
unexpected failures like -dumpmachine not working for cc while working
fine for c++.

Do not re-define IN_GCC in multipe places, it gets inherited from
Makefile.in anyway.

PR: gnu/110143
Submitted by: usleepless at gmail


164019 06-Nov-2006 obrien

Remove gratuitous white space change.


162511 21-Sep-2006 ru

Prepare to pick up manpages from their new location.


162496 21-Sep-2006 kan

Bump __FreeBSD_cc_version in case someone cares for differences between
GCC 3.4.4 and GCC 3.4.6 on -current.


162417 18-Sep-2006 imp

Add additional support for generating code for the arm. There's still
a few issues in other parts of the tree, but those will be resolved
separately.

Submitted by: cogenet@
Reviewed by: kan@, obrien@
MFC After: 5 days


162346 16-Sep-2006 ru

This is not needed since src/gnu/usr.bin/cc/cc_int/Makefile,v 1.34.


162312 15-Sep-2006 imp

A TARGET_CPU_DEFAULT of xscale for arm results in illegal instructions
during buildworld. Comment it out for now.


162258 12-Sep-2006 kan

Remove redundant defines alerady set by Makefile.fe


162247 12-Sep-2006 obrien

Move to more global Makefile.tgt vs. having to define in the leaves.


162246 12-Sep-2006 obrien

Default to big endian ARM if "TARGET_BIG_ENDIAN" is defined, and set an ARM
target default.


162244 12-Sep-2006 obrien

Default to big endian ARM if "TARGET_BIG_ENDIAN" is defined (& targeting ARM).


162209 11-Sep-2006 imp

Fix three whitespace nits.

I think these are from kan@...


160575 22-Jul-2006 obrien

The platform name is ARM not StrongARM.

Submitted by: cognet


156935 21-Mar-2006 ru

Desupport the *_COLLECT2 no-op.


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)


154374 14-Jan-2006 ru

Don't pollute output when "make" is run with -s.

Approved by: kan


151887 30-Oct-2005 obrien

Locate __FreeBSD_cc_version's value beside __FreeBSD__'s value to make it
easier to keep them in sync.


151857 29-Oct-2005 obrien

Catch up with FreeBSD 7.


146910 03-Jun-2005 kan

Update bmake glue for GCC 3.4.4.


139112 21-Dec-2004 ru

NOSHARED -> NO_SHARED


139103 21-Dec-2004 ru

Start the dreaded NOFOO -> NO_FOO conversion.

OK'ed by: core


137361 07-Nov-2004 kan

Remove trailing whitespace.

Pointed out by: ru


137334 07-Nov-2004 kan

Reconnect c++filt to the build.


137333 07-Nov-2004 kan

Unbreak c++filt. It was disconnected from the build and never fixed during
GCC 3.4.2 work unintentioanlly.

Reminded by: bms


136910 24-Oct-2004 ru

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


133956 18-Aug-2004 ru

A fix from rev. 1.52 of gnu/usr.bin/cc/cc_tools/Makefile was lost
in rev. 1.57. Fix this regression by making cc_tools a new-style
build-tool in Makefile.inc1. For details of what has been fixed,
please see the gnu/usr.bin/cc/cc_tools/Makefile,v 1.52 commit log.

Caught this by accidentally touching param.h while in the process
of cross-buildworld for amd64.


133581 12-Aug-2004 kan

Consolidate libiberty files in one place and avoid listing some
of them in several places.

Noticed by: bsdimp


133057 03-Aug-2004 ru

Whitespace nit.

OK'ed by: kan


132887 30-Jul-2004 kan

Fix a copy and paste error. Do not include errors.c in libgcc_int.a,
it is only used by build tools.

Submitted by: grehan


132751 28-Jul-2004 kan

Bmake glue for GCC 3.4.2-prerelease.


130325 11-Jun-2004 peter

Revise previous commit - I managed to mess up a 1-line change and broke
amd64 world. The csu code evalues this Makefile with a different origin.


130324 10-Jun-2004 peter

The gcc/config/i386/freebsd64.h file neglects to override the default
(bogus, application name space) mcount function name on amd64. Override
it here instead.

I've done it this way to avoid touching gcc source while 3.4 is in
progress, and this is the smallest, lowest impact I could come up with.
Adding a patch touches about 10-14 lines of Makefile, this touches only 1.
This will likely go away with the 3.4 import.

I spoke with Alexander about this a few days ago, but waited until after
sorting out some of the other bugs in the userland profiling.


129828 29-May-2004 kan

Remove componenst which are not part of GCC 3.3 and which are not likely
to get used again in the future.


126268 26-Feb-2004 bde

Rremoved bogus -static from CFLAGS. Makeworld will add -static in the
correct place if needed and possible. Self-hosted builds can just use
the system default.


126266 26-Feb-2004 bde

Backed out the residue of rev.1.13 (bogus addition of -static to CFLAGS).
Makeworld will add -static in the correct place if needed and possible.
Self-hosted builds can just use the system default.

Fixed some nearby style bugs (code unrelated to its comment, and comment
formatting).


125919 17-Feb-2004 ache

Remove getopt*.c, we already have compatible getopt_long() in libc
(cc toolchain use it rarely, so no surprizes should occurse)


125503 05-Feb-2004 ru

Fixed style of DPADD and LDADD assignments as per style.Makefile(5).


125040 26-Jan-2004 kan

Do not treat make variables as Perl variables.


124547 15-Jan-2004 ru

Fixed "make clean".


124451 12-Jan-2004 ru

Last revision also added duplicate SRCS. Fixed this so that
the resulting .a library has only unique .o files.

Noticed by: bde


124443 12-Jan-2004 ru

Don't put objects in SRCS -- this creates all sort of havoc like
causing objects to be built during "make depend", missed sources
in .depend, etc.


124417 12-Jan-2004 ru

Removed duplicate SRCS.


124400 11-Jan-2004 ru

Ensure that generated headers are here before we build .depend
and object files in a less hackish way compatible with further
planned changes to bsd.dep.mk.


124150 05-Jan-2004 kan

Stop compiling files which are not part of GCC 3.3.x.


123678 19-Dec-2003 kan

Use __cxa_atexit, rather than atexit, to register C++ destructors for local
statics and global objects. This is essential for fully standards-compliant
handling of destructors, and requires __cxa_atexit in libc.


123359 09-Dec-2003 kan

Add two additional headers for amd64 and x86.

Reported by: Ollivier Robert


118273 31-Jul-2003 obrien

If ${GCC_CPU}-c.c exists, we need to use it.


117496 13-Jul-2003 kan

Including dynamically generated osreldate.h wasn't such a good
idea after all.

Fix cross-builds and ia64 builds. gnu/lib/csu/Makefile is modified to
pre-include osreldate.h and gnu/usr.bin/cc/cc_tools/auto-host.h
will avoid including sys/param.h if __FreeBSD_version is already defined.


117453 11-Jul-2003 kan

Include osreldate.h instead of sys/param.h to get __FreeBSD_version
definition. This fixes buildworld breakage on ia64.


117429 11-Jul-2003 kan

Update bmake bits to build GCC 3.3.1-prerelease.


117428 11-Jul-2003 kan

Update for GCC 3.3.1-pre.


117118 01-Jul-2003 ru

Fixed build.

Noticed by: bde


116891 26-Jun-2003 peter

Add missing quote after cut/paste error in last commit. :-(


116859 26-Jun-2003 peter

Configure gcc in biarch mode for amd64 so that the -m32 flag is enabled
for things like boot blocks etc.

Reviewed by: kan


116320 13-Jun-2003 peter

When building a shared library, link it against libgcc_pic.a instead of the
non-PIC libgcc.a. Linking non-pic code into a shared library is not
a good thing. It happens to break amd64 at compile time, and the ppc
folks want it too. The problem is mainly with C++ code, unwind-dw2.c
in particular. Most of the other functions in libgcc.a are self
contained so most of the time it isn't a problem. The dwarf2 unwinder
is not safe though since it does make global variable references.

Reviewed by: kan


115898 06-Jun-2003 kuriyama

Use
cat ${.ALLSRC} > ${.TARGET}
rather than
ln -sf ${.ALLSRC} ${.TARGET}
not to depends on absolute-path of symbolic links.

Commented by: marcel, obrien, bde


115292 24-May-2003 peter

Add a temporary indirect patch for gcc when targeting amd64. This is to
give the cvs tree a surviving a 'make world'. One of the two diff chunks
is already in gcc-3.3, the other has been committed to gcc's HEAD and
is in the pipeline for gcc-3.3.1 (but has not been committed yet).

The first chunk simplifies an excessively complex assembler statement
when generating switch jump tables. The use of '.' causes as(1) to choke
on big files. Use a simpler form instead. This is only an issue for
TARGET_64BIT mode.

The second chunk fixes an internal compiler error when compiling
libc/stdio/vfprinf.c. While this is supposedly only an issue for
64 bit mode, it does touch the 32 bit i386 code paths, so this patch
is only applied for TARGET_ARCH == amd64 to keep the risks down.
Breaking gcc at the 11th hour would suck.

This will be removed when it is time to import gcc-3.3.

Discussed with: kan
Approved by: re (jhb)


114425 01-May-2003 obrien

Lock GCC w/o -m32 into 64-bit mode.


114083 26-Apr-2003 obrien

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


112940 01-Apr-2003 ru

Mark bits that do not require an object directory as such.


111451 24-Feb-2003 ru

Install the gcov(1) manpage; kernbb(8) references it.


107614 04-Dec-2002 obrien

Gperf is usable again.


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


106848 13-Nov-2002 ru

Bootstrapping aid for 4.0-RELEASE.


106488 06-Nov-2002 obrien

Better emulate the FSF build for Sparc64.


105502 20-Oct-2002 obrien

We HAVE_STPCPY now.


104770 10-Oct-2002 kan

Add multilib_options variable definition.

Approved by: obrien


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


103257 12-Sep-2002 obrien

We're going to have to use a TARGET_ARCH of "x86_64" rather than "x86-64"
to make building GCC happy.


98056 09-Jun-2002 obrien

Allow one to profile FORTRAN77 programs.


98054 08-Jun-2002 obrien

Restore revision 1.15 (use profiled C++ libs) which wasn't on the WIP_GCC31
branch and thus was lost in the shuffle on the move to Gcc 3.1.


98051 08-Jun-2002 obrien

Fix compiling FORTRAN77 programs.


97913 06-Jun-2002 obrien

Read specs from /usr/libdata/gcc/specs if it exists.


97890 05-Jun-2002 obrien

The best we can do about man pages for the moment.


97873 05-Jun-2002 obrien

Search the "backward" C++ compatibility include dir also.


97872 05-Jun-2002 obrien

We don't need bsd.dep.mk here.


97831 04-Jun-2002 obrien

Install the i386 MMX headers, and IA-64 intrinsics functions.

Requested by: peter


97830 04-Jun-2002 obrien

We don't need this library any more.


97356 27-May-2002 obrien

I missed the setting of PREFIX_INCLUDE_DIR when I visually santity checked
the output from a autoconfig run.


96833 18-May-2002 obrien

Use a more API denoting way to handle what is in libc and what isn't.


96828 18-May-2002 obrien

Don't depend on gperf.


96794 17-May-2002 obrien

Remove some WIP bits that I didn't fully clean out before merging to HEAD.


96789 17-May-2002 ru

Back out revision 1.30 change.

cc1plus can apparently be built if you happen to have
/usr/bin/gperf, or set CXX to point to a C++ compiler
that can build gperf(1) in the bootstrap-tools stage
of buildworld.


96777 17-May-2002 obrien

Do not cut `docs' out of the build with NO_CXX.
There are no longer GNU C++ specific info files, and it was a bug with Gcc
2.95 that NO_CXX would cause the C and CPP info files to not be installed.


96736 16-May-2002 ru

MD_EXEC_PREFIX doesn't work for the cross-arch compiler.
The change also makes the `cc -print-search-dirs' output
sane (the pre-3.1 way) in the non-cross case.

Draft reviewed by: obrien


96734 16-May-2002 ru

Make it possible to build a cross compiler for alpha,
ia64 and sparc64 on systems that do not have atoll(3).
The "cross" here doesn't necessarily mean cross-arch.


96699 15-May-2002 obrien

Add x86-64 bits.


96697 15-May-2002 obrien

The IA-64 config needs to know that we are using GNU ld & as.

Submitted by: peter


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.


96514 13-May-2002 ru

Mark all internal libraries with INTERNALLIB.


96488 13-May-2002 obrien

Restore some of the implementation from the Bmake gcc 2.95 bits.
In the end, I can do things more like the previous Bmake bits than was
apparent in the middle of the gcc31 WIP.


96484 13-May-2002 obrien

I was finally able to repeat the -j breakage on one of my machines. Fix it.
I borrowed some ideas from Ruslan, and made the style match cc_tools/Makefile


96448 12-May-2002 obrien

Tidy up the cleanfiles.


96447 12-May-2002 obrien

Fixes for building a.out bits.

Submitted by: bde


96395 11-May-2002 obrien

Sorry, I did not mean to turn collect2 back on yet.


96370 11-May-2002 obrien

Revert rev 1.3 -- I tested using the wrong build compiler.


96369 10-May-2002 obrien

Actually we don't need any special YACC'ing here. The ones known to
Bmake are fine.


96360 10-May-2002 obrien

Touching the sjlj setting on IA-64 makes things not build.

Submitted by: peter


96358 10-May-2002 obrien

Doh! Add IA-64 to our target list.


96345 10-May-2002 obrien

Gather up the stragglers that depends on genrtl.h. This is -j10 safe now.


96344 10-May-2002 obrien

This was *very* -j unsafe. Add a dependency on the common generated
headers to mostly make it -j1 safe.


96340 10-May-2002 obrien

Bmake bits for Gcc 3.1.

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


96323 10-May-2002 obrien

Gcc 3.1 now offers both a C99 and a K&R traditional C preprocessor.
This is the ISO C99 one.


96239 09-May-2002 obrien

Gcc 3.1 now offers both a C99 and a K&R traditional C preprocessor.
This is the traditional one.


95878 01-May-2002 obrien

Add support for using the profiled versions of the C++ (and related) libs.


95294 23-Apr-2002 obrien

Don't use "GCCDIR" as the multiple inclusion protector. Subdir Makefiles
may want to override GCCDIR and this gets in the way.


94720 15-Apr-2002 obrien

Turn off collect2.
collect2 was added based on the need of -frepo. However, -frepo is currently
broken on -CURRENT (Gcc 2.95.4 20020320 [FreeBSD] / ld 2.12.0 [FreeBSD]
2002-04-10). It is also broken on RELENG_4 (Gcc 2.95.3 20010315 / ld
2.11.2 20010719), so there is no need to MFC collect2 there yet. I have
a feeling the brokeness is due to the wide difference between the libiberty
bits of Gcc 2.95 and the later ld.

Testing by: fjoe


94448 11-Apr-2002 obrien

In the cross case we need to provide TARGET_MACHINE.


94331 10-Apr-2002 obrien

In the cross case we need to provide TARGET_MACHINE.


94328 10-Apr-2002 obrien

Change YACCing.

Submited by: ru


94226 08-Apr-2002 obrien

Fine! I cannot freaking take the bikeshed any more.
These binaries will be static, peroid.


94005 06-Apr-2002 obrien

Break some things used by the front-ends from Makefile.inc that cannot
be used build-wide for GCC 3.1.


94004 06-Apr-2002 obrien

Build and install collect2. This is needed for some C++ programs.


94003 06-Apr-2002 obrien

Break some things out of Makefile.inc that cannot be used build-wide
for GCC 3.1.


93955 06-Apr-2002 obrien

Expand the toolchain a little bit.

Requested by: fjoe (collect2), des (protoize)


93874 05-Apr-2002 obrien

A little more reorg.


93807 04-Apr-2002 obrien

Minor reorg.


93806 04-Apr-2002 obrien

Minor style tweak.


93801 04-Apr-2002 obrien

Remove some local cruft that snuck in yesterday.


93744 04-Apr-2002 obrien

Make the sed line a little bit more clear (it will get messier later).


93742 04-Apr-2002 obrien

Set NOSHARED conditionally.


93741 04-Apr-2002 obrien

Clean up the YACCing. I don't know why we cannot leave the .y's as .y's.
So lets see if doing so causes anyone trouble.
Also use make(1)'s assistance in using the right file. It knows the
dependency, so lets just ask it.


93740 04-Apr-2002 obrien

Remove duplicate objc-parse.h. While we are at it, just spell it correctly
as c-parse.h since that is how the consumers spell it.


93738 04-Apr-2002 obrien

Get rid of GCC_ARCH, and just use plain TARGET_ARCH.
We got rid of the MIPS le/be stuff that needed this a long time ago.


93709 03-Apr-2002 obrien

Remove some 1996 GCC 2.6.3 cruft for building a shared cc_int lib.


92848 21-Mar-2002 obrien

Properly get the version number after the 2.95.4 upgrade.


91559 02-Mar-2002 obrien

Move the creation of the insn-*.c files from cc_tools to cc_int.
This gets rid of a cross build problem we have because we build
everything in cc_tools during the `make build-tools' (or `make depend')
stage.


91190 24-Feb-2002 obrien

Use libgcc_p.a when -pg is in effect.

I am committing this here rather than in gcc/config/freebsd.h because the
profiled libgcc only exists with the native system compiler. It is not
created by a stock FSF build and we will never be able to get these bits
committed to the FSF CVS repo. Thus this is very much a FreeBSD "native"
issue.


90993 20-Feb-2002 obrien

Allow for better control over the GCC front-end when building a cross
compiler.

* Undo the diking out of cross compiler logic from gcc.c rev 1.16.
* Add the `CROSS_STARTFILE_PREFIX' knob.
* Add our own definition of `STANDARD_INCLUDE_DIR'. This should have been
included in freebsd-native.h rev 1.5.
* Minimize a little bit more, things we dike out in the FREEBSD_NATIVE case.

Submitted by: ru & obrien


90952 20-Feb-2002 obrien

Clean up the style a little bit.


90951 20-Feb-2002 obrien

Do not define a 'MD_EXEC_PREFIX'. It is not needed, not used in the
cross case, and just ends up causing "/usr/libexec" being added to the
library search path.

Also remove misleading comment about 'STANDARD_EXEC_PREFIX'. It is needed
if one does not set 'MD_EXEC_PREFIX'.

Submitted by: ru


84032 27-Sep-2001 obrien

We need to build ``.depend'' early in the "build-tools" for the GCC
"build-tools". If we do not do this, the "depend" stage of
"buildworld" will build ``.depend'' and it will record the wrong
library and header dependencies (DESTDIR=${WORLDTMP}). Even worse,
the "all" stage may clobber build-architecture-format build tools
built in the "build-tools" stage with target-architecture-format ones.

Submitted by: ru


83305 10-Sep-2001 obrien

I am no longer the FreeBSD GCC maintainer.


81749 16-Aug-2001 obrien

Add the `WANT_FORCE_OPTIMIZATION_DOWNGRADE' knob. If set to an integer
value, it forces GCC to not optimize above this level. For intance, GCC
made with "WANT_FORCE_OPTIMIZATION_DOWNGRADE=1" is a good setting for the
Alpha platform when building ports.


75400 11-Apr-2001 obrien

Remove MIPS support.
It has rotted quite badly and no one has provided updates for it.


74861 27-Mar-2001 ru

MAN[1-9] -> MAN.


74313 15-Mar-2001 obrien

Note rules of enguagement.


73307 02-Mar-2001 obrien

Include `dbxelf.h' via tm.h (the approved FSF/GNU way) vs. in our MI header.


73306 02-Mar-2001 obrien

Define "FREEBSD_NATIVE" in the freebsd-native header to reduce the amount
of stuff (and thus length of error output) we put on the invocation command
line. Also follow the new FSF/GNU style of giving the symbol a value so it
can be used in `if()' statements in addition to `#if' so seldomly compiled
in code (on some platforms) gets compiled always, to help reduce bit-rot.


73297 01-Mar-2001 obrien

Do not need to define "VERSION" here -- we do it on the command line.


73218 28-Feb-2001 obrien

Allow "NOSHARED" to be overridden.

Submitted by: bde


72567 17-Feb-2001 obrien

Make `cc' and `cpp0' staticly linked binaries in this development version
of the OS.


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


70649 04-Jan-2001 obrien

The preprocessor used by the `cc' driver is now named `ccp0' to make it
clear this is the 1st pass of compilation and to make clear this particular
cpp is for `cc's use only.


70318 23-Dec-2000 obrien

Add `gcov' to the mix.

Requested by: David Malone <dwmalone@maths.tcd.ie>
PR: 18574


69535 03-Dec-2000 obrien

tm.h should include the platform specific ELF header if it exists.


68572 10-Nov-2000 obrien

Add comment about a requirement in using a 64-bit `long' on i386.


68571 10-Nov-2000 obrien

Link with libgcc_pic when building shared objects.
(note we should not just use GCC's default LIBGCC_SPEC as it doesn't use
the PIC version when linking shared)

Recomended by: jdp
PR: 21983


68528 09-Nov-2000 obrien

Found remaining -kthread option that [sort of] supported using the
LinuxThreads port. Dike it out as it was removed from freebsd.h on
19-July-2000 as this option depended on bits not part of the base system
and required people to install the LinuxThreads port in a manner
non-consistent with the workings of our Ports Collection.

Requested by: jasone


61238 04-Jun-2000 obrien

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


60884 24-May-2000 obrien

Move c-decl.c out of the common libcc_int.a into the binary Makefiles
where it is used. c-decl has symbols that conflict with several of the
cc1plus sources.

GNU `ld' was changed in Dec 1999 to be more be compatable with the way that
other linkers work (specifically in the Solaris linker). The 2.9.1 `ld',
did the Wrong Thing in that if a library contained a common symbol that
matched a definition of that symbol in another (already linked in object)
it would also be linked in, even if there was no other reason to do so.
This is wrong. The library should only be linked in if it contains
non-common, non-weak symbols which are needed by previously linked in
objects.


60598 15-May-2000 bde

Don't forget to clean f77.1.

Don't use "+=" for variables that are only set once.


58954 02-Apr-2000 steve

Enable Haifa on sparc64 as well.


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.


58318 19-Mar-2000 obrien

Make the SUBDIR list more granular to assist in my GCC hacking.


58086 15-Mar-2000 obrien

Make the build-tools objects weirder named so one can tell there is
something special going on here.


57965 13-Mar-2000 obrien

Move some cflag contents down to where they are acutally used.


56806 29-Jan-2000 obrien

"Rev.1.45 of cc_tools/Makefile was a wrong fix for a problem introduced
in rev.1.44 (the egcs to gcc switch). The problem is that print-rtl.o
is now needed to build some tools, but it wasn't added to the list of
objects which are specially handled because they are prerequisites for
tools."

Submitted by: bde


56730 28-Jan-2000 jasone

Track internal(!) libc symbol naming change.


56552 24-Jan-2000 obrien

Merge cc_drv into cc_int. Merge more shared files into cc_int.


56521 24-Jan-2000 obrien

Simply cc_tools/Makefile by moving the parser generation to the respective
backends.


56513 24-Jan-2000 obrien

Style change to better match src/lib/'s Makefiles.


56497 23-Jan-2000 obrien

I *hate* using "i" in variables, looks too much like "1" or "l".


55960 14-Jan-2000 obrien

This patch solves the a cross-build problem where proj.c is both used by a
build-tools target and by the actual target. In a cross-building situation
proj.o is both a native object and a cross-object (i.e., for the target
arch) and thus doesn't work. Creating seperate opjects from the same
source file solves this...

This patch may also fix the following issue:

> it looks like -DNOCLEAN doesn't work too well.
> cd /usr/src/gnu/usr.bin/cc/f771; make build-tools
> make: don't know how to make /usr/obj/usr/src/i386/usr/include/stdarg.h. Stop

This seems caused by wrong dependency information. Dependency
information shouldn't be created for build-tools sources.

Submitted by: marcel


55870 13-Jan-2000 obrien

Make mktemp.c a "normal" C implimentation when building this library.


55803 11-Jan-2000 obrien

Drop the use of Bison for Byacc now that we don't need to depend on the
--broken-undeftoken-init Bison 1.25 bug.


55388 04-Jan-2000 obrien

Turn on a new /usr/bin/cpp that is a true binary rather than a shell script
wrapper. /usr/bin/cpp knows about all the GCC predefined symbols and has
the functionality of the previous EGCS 1.1.2 /usr/libexec/cpp.


55317 02-Jan-2000 obrien

Didn't get these PREFIX specifiers removed with Makefile.inc rev 1.48.

Submitted by: marcel


55220 29-Dec-1999 obrien

Allow the specification of a prefix for gcc to find all the various bits.
If one wishes to anchor the compiler toolchain tree somewhere other than /,
all one needs to do is set "TOOLS_PREFIX" to a different rooting.

Submitted by: marcel (in a different format and reworked by me)


54991 22-Dec-1999 obrien

Fix cut-n-paste braino.


54990 22-Dec-1999 obrien

Reduce the FreeBSD custom hacks to gcc.c by using the GCC provided methods
of changing the search dirs. This also removes an used search dir,
removes unneeded redundancy, and a bugus dir we enherited on the i386
by baseing off of svr4.h.

We went from:
install: /usr/libexec/(null)
programs: /usr/libexec/<OBJFORMAT>/:/usr/libexec/:/usr/bin/:/usr/libexec/
libraries: /usr/libdata/gcc/:/usr/libexec/:/usr/ccs/lib/:/usr/lib/

to:
install: /usr/libexec/(null)
programs: /usr/libexec/<OBJFORMAT>/:/usr/libexec/
libraries: /usr/libexec/:/usr/lib/


54988 22-Dec-1999 obrien

Another style nit.


54987 22-Dec-1999 obrien

* Support a non-default sized `long' data type. This allows one to easily
build the compiler with a 64-bit longs on the i386.
* Comment an important dependancy.
* Fix some style nits

Submitted by: bde


54986 22-Dec-1999 obrien

* Remove debugging cruft that accidently got committed.
* Support mixed OBJDIR handling such .a's are properly found with a mix of
obj subdirs both w/in and outside the source tree works. Requested by BDE.


54837 19-Dec-1999 obrien

Add libcc_fbsd.a that contains libc and libiberty routines needed in
bootstraping on FreeBSD specifically.

3.2 upgrade path tested by: marcel


54317 08-Dec-1999 obrien

Revert rev 1.8.

NOT Approved by: obrien


54313 08-Dec-1999 marcel

Maintain compatibility with FreeBSD versions that don't have mkstemps


53825 28-Nov-1999 marcel

remove cc1obj from the original SUBDIR list since it's made optional
in the previous commit resulting.

Forgotten by: obrien


53787 27-Nov-1999 obrien

Make ObjC bits optional. NO_OBJC ==> don't need `em.


53443 20-Nov-1999 obrien

mkstemps() has been brought into 3-STABLE, so this isn't needed here
anymore as building -CURRENT sources on 3-STABLE was the reason for the
previous revision adding this.

Note that since the GCC Project moved mkstemp.c from GCC's world to
libiberty, we no longer support building -CURRENT sources on non-FreeBSD
boxes unless that box has a very simular libc mix as FreeBSD.


53442 20-Nov-1999 obrien

Remove the `sysctl' get osversion hack. There are issues with cross-hosting
builds, Also, `sysctl' is not a build-tool and I'd rather not make it one.
3-STABLE has been updated to deal with the main reason this came in.


53280 17-Nov-1999 obrien

Build genrtl.h before print-rtl.o.

Submitted by: John Hay <jhay@mikom.csir.co.za> (basic idea, changed by me)


53267 17-Nov-1999 obrien

Allow sub-Makefile's to determine the version of the OS we are make'ing on.


53266 17-Nov-1999 obrien

Add `mkstemp.c' to the mix if we are building on something older than
__FreeBSD_version < 400004.

This allows -STABLE to build -CURRENT sources.

[mkstemps() was added to -current just before the version bump to 400004
(a matter of hours in this case), so the test is as exact as possible.]

Submitted by: marcel


53173 15-Nov-1999 obrien

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


53161 15-Nov-1999 obrien

Purely cosmetic changes to lineup targets.


53160 15-Nov-1999 obrien

Cosmetic removeal of a trailing white space.


52914 06-Nov-1999 obrien

Our capibilities updated for GCC 2.95.2.


52861 04-Nov-1999 obrien

Minor cosmetic changes in an attempt to improve consistancy.


52648 30-Oct-1999 obrien

`make' will fail if hash.h exists for some reason and gxx-hash needs to be
rebuilt. Fix this.

Submitted by: bde


52172 12-Oct-1999 obrien

Add a comment explaing the linking and segrated the old and new cases a little.


52171 12-Oct-1999 obrien

Change the name of the file generaged from gxx.gperf from "hash.h" to
"gxx-hash.h" with hopes of getting Cygnus to do the same. We create a link
to the old name for now.


52170 12-Oct-1999 obrien

Move -I of cc_tool/ before the GCCDIR ones.

When I imported EGCS into contrib/egcs/ I failed to prune out
egcs/gcc/cp/hash.h which is generated from gxx.gperf. Thus `cc1plus' wasn't
using the hash.h we generated by cc/cc_tools/Makefile, but rather the one in
egcs/gcc/cp/.

When I imported contrib/gcc/ I did prune gcc/cp/hash.h. Unfortunately the
GCC maintainers weren't smart on their file nameing and there is also a
egcs/gcc/hash.h (name overloading does NOT work as well on the filesystem
as in C++...). Due to the -I ordering we are were then picking up gcc/hash.h
when compiling `cc1plus'.


50472 27-Aug-1999 peter

$Id$ -> $FreeBSD$


50064 19-Aug-1999 peter

Make gcc work on the Alpha again. alpha/alpha.h is used instead of svr4.h


49885 16-Aug-1999 obrien

Rev 1.36 also includes functional chagnes I intended to commit seperately.
Configuration header inclusion has been moved around to reduce diffs from
the offical GCC distribution. We now generate the same ``tm.h'' produced by
gcc's `configure' script [minus all the "#ifdef IN_GCC"'s].

Jeff Law of EGCS/Cygus says the new "approved" way of doing configure-related
includes is to list them all in ``tm.h'' rather than having the architure
config headers include large numbers of other configure headers.


49864 16-Aug-1999 obrien

Purely cosmetic cleanups.
- Id tag layout wrong.
- "FOO =" -> "FOO=".
- 4 space indention on continuation lines rather than a <tab>

Basic idea checked by: bde


49853 15-Aug-1999 obrien

Move "LIBGCC_SPEC" to freebsd-native.h as it is not approapiate for
submitting to the GCC mainainers for folding into the stock GCC.


49811 14-Aug-1999 obrien

Use Bison with "--broken-undeftoken-init".


49810 14-Aug-1999 obrien

Rather than deleting the grammer files during building, move them out of the
way. This way they are available for inspection when debugging problems.


49510 08-Aug-1999 bde

Forgotten in previous log message:

PR: misc/12920


49509 08-Aug-1999 bde

Install c++filt in /usr/libexec/${OBJFORMAT}. The version that
was installed in /usr/bin normally got clobbered when objformat
was installed. Indirection through objformat is correct although
underscore handling is the only thing that differs for aout and
elf -- going through objformat is the easiest way to set c++filt's
underscore handling flag correctly.


49347 01-Aug-1999 obrien

Only use Bison to generate cc1plus's parse code.


49213 29-Jul-1999 obrien

Go back to using Bison for now, due to `make world' breakage.

BTW, if our src/contrib/bison is upgraded from 1.25 to the current 1.27
offering, the build breaks exactly the same way....


49152 28-Jul-1999 obrien

Use Yacc rather than Bison.


49151 28-Jul-1999 obrien

The Unix way is arguments come before an input file name, not after.


48562 04-Jul-1999 bde

Don't override the (correct) default for BINDIR.


46157 28-Apr-1999 obrien

Rather than hack config/freebsd.h to contain our hacks for a native compiler,
just include them in tm.h (as built from cc/cc_tools/Makefile).

This will reduce the diffs from the vendor sources.

Excellent idea by: jdp


46070 25-Apr-1999 obrien

use `target' macro crafted in parent Makefile rather than making our own

Submitted by: Warner Losh


46069 25-Apr-1999 obrien

Hookup FORTRAN info docs.

Submitted by: Mark Murry


45944 22-Apr-1999 obrien

Sorry didn't get this in the last commit: MACHINE_ARCH changes courtesy
of Warner Losh <imp@village.org>. (he's got plans for FreeBSD mips :-))


45943 22-Apr-1999 obrien

Use `GNU_ARCH' in most places where `MACHINE_ARCH' was used. Building for
mips has some particularlies.


45928 22-Apr-1999 obrien

Have config/i386/freebsd.h directly include att.h. I have no idea why stock
EGCS doesn't just do this. None of the rest of our other platforms will need
this file.


45767 18-Apr-1999 obrien

Add FORTRAN support.


45766 18-Apr-1999 obrien

Move HAVE_CONFIG_H define to global cc/ Makefile so all can share the benifits.


45765 18-Apr-1999 obrien

*** empty log message ***


45764 18-Apr-1999 obrien

Use inherited BINDIR defintion.


45763 18-Apr-1999 obrien

Include the parent Makefile.inc so we get a proper BINDIR definition.

As explained by: bde


45762 18-Apr-1999 obrien

Hookup the new FORTRAN compiler. Define `NO_FORTRAN' to not compile it.


45761 18-Apr-1999 obrien

Add the EGCS g77 FORTRAN compiler.


45760 18-Apr-1999 obrien

Minimum change to convert from home-grown f77 to EGCS's g77.
(Pre-bdelinted)


45757 18-Apr-1999 obrien

Make room for g77.


45659 13-Apr-1999 markm

As the INFO stuff un doc/ works, we may as well build/install it.

OK'ed by: obrien


45583 11-Apr-1999 bde

Cleaned up egcs changes (mainly to minimise diffs with the gcc version
and restore order to sorted lists).


45582 11-Apr-1999 bde

Fixed unusable dependencies in `.depend'. The following comment in the
code still applies, but the code attached to it had rotted:

# ../Makefile.inc will put an absolute path to our objdir in CFLAGS.
# Prevent mkdep from using it, so that we don't have to give rules for
# aliases of generated headers.

Many other makefiles seem to have the same bug (i.e., spelling "." as
"${.OBJDIR}" or as an even more complicated alias in -I directives).


45519 09-Apr-1999 bde

Fixed world breakage. Fixed (?) building with -jN (N > 1).

The previous commit made things worse by breaking the -j0 case and
moving around the breakage for the -jN case. The fix involves
restoring .ORDER statements that were deleted in the previous commit,
removing wrong special handling of tree-check.h, and rewriting the
generation of fudged dependencies based on an idea I got from the
previous commit (filter out problematic objects first).


45500 08-Apr-1999 obrien

Another fix for -jN building -- the last fix didn't fix it for everybody.

Submitted by: Luoqi Chen <luoqi@watermarkgroup.com>


45481 08-Apr-1999 peter

Clean up some stuff that's no longer used.


45480 08-Apr-1999 peter

Clean up the multilib stuff so that it actually works..
cc -aout now works again.


45469 08-Apr-1999 obrien

Remove some of the dependencies. This removes the cycles I was getting on
`make -j 8' builds.


45467 08-Apr-1999 obrien

Due to other explicit dependancies, don't treat tree-check.h as a SRCS.


45466 08-Apr-1999 obrien

Fix a circular dependancy.


45456 08-Apr-1999 obrien

alpha/freebsd-elf.h is being folded into alpha/freebsd.h

Submitted by: Hidetoshi Shimokawa <simokawa@sat.t.u-tokyo.ac.jp>


45389 06-Apr-1999 obrien

Use Haifa scheduler on the Alpha.


45340 05-Apr-1999 peter

Fix type mismatch..


45333 05-Apr-1999 obrien

Correct contents for the EGCS compiler documentation.
Currently it is unbuildable, but an info-aware developer should be able to get
this working w/o too much trouble.


45307 04-Apr-1999 obrien

Conditionalize one more i386'ism.


45305 04-Apr-1999 obrien

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


45304 04-Apr-1999 imp

Remove mkstemp.c from build. This is now in libc.

Tested by: make buildworld


45301 04-Apr-1999 obrien

didn't get latest version:
Don't conditionalize -I${.CURDIR}/../cc_tools


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)


45250 02-Apr-1999 obrien

`make world' works fine -- no reason to revert the move to gnu/lib/


45169 31-Mar-1999 obrien

Hookup libgcc at gnu/lib instead of gnu/usr.bin/cc
(libgcc was repository copied for me by Peter)


42731 16-Jan-1999 peter

Remove BINFORMAT/a.out/elf default hackery, it's elf by default internally
and doesn't need to use this.


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.


40663 26-Oct-1998 imp

Another instance where we default to elf only on alpha, but should
default to aout only on i386.


40457 16-Oct-1998 bde

Split up rule for ${COMMONHDRS} so that `make -j N' doesn't create the
6 headers up to 6 times concurrently. Debugged by Don Lewis
(Don.Lewis@tsc.tdk.com).

Fixed some disorder.


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).


38462 20-Aug-1998 jb

Make the build tools static to avoid trying to use the shared loader
before it is installed.

This upsets Bruce because the host boostrap build forces tools to be
static anyway. He says I'm abusing NOTOOLS in src/Makefile by using
it to do a aout->elf transition build. One day I'll find a place to
install host tools like these to allow a true cross build.


37854 24-Jul-1998 phk

During compilation of a Fortran program f2c/f77 will spew the
name of entry points, functions, subroutines, and program to
stderr error. The enclosed patches do 3 things:

(1) Silenced the output to stderr.
(2) Added a -v option to f2c and f77. This will turn on a verbose
mode, and dumps quite a bit of stuff to stderr.
(3) Updated the f2c man page.

PR: 7369
Submitted by: Steven G. Kargl <kargl@troutmask.apl.washington.edu>


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.


37486 08-Jul-1998 bde

Use the installed versions of cc, cc1 and cpp for building underscore.
They have been bootstrapped by `make world' since long before the
hacks here were cloned from ../libgcc/Makefile. The versions just
built in "../*" normally won't work if the target system is not binary
compatible.

Don't use OBJS to defeat `make depend'; just put generated sources in
SRCS.

Added temporary files to CLEANFILES.


37460 07-Jul-1998 bde

Added a `build-tools' target for internal tools.


35693 04-May-1998 bde

Simplified using new yacc rules. This is cosmetic - the old rules worked
with `make -jN' because they did the right things to generate cexp.h
without clobbering cexp.c, and there were no missing dependencies on
cexp.h because cexp.h isn't actually used.

Fixed style bugs.


35402 23-Apr-1998 bde

Fixed missing dependencies. The critical missing one was of bi-lexer.o
on bi-parser.h. Not having it sometimes (only with `make -j') triggered
a bug suite that led to ordinary cpp output being put in .depend files.
Various bugs (the main one only with `make -j') prevented timely detection
of failure to build and install gnu/usr.bin/cc. Eventually the missing
${WORLDTMP}/usr/libexec/cpp caused ${WORLDTMP}/usr/bin/cpp to be invoked
by cc, and this version of cpp is not suitable for such invocation.
Ordinary cpp output was put in .depend files when cpp terminated options
processing before seeing the -M flag.

Cleaned up.


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.


34813 23-Mar-1998 bde

Honour -static in LDLAGS. ld without -Bstatic is happy to choose
static libraries if there are no shared libraries in the search path,
but gcc without -static blindly attempts to link crt0.o.


34656 18-Mar-1998 obrien

I goofed on the `LINKS' syntax.
Submitted by: Dmitrij Tejblum <dima@tejblum.dnttm.rssi.ru>


34515 12-Mar-1998 bde

Fixed `make -jN depend' (N >= 2) by removing the beforedepend
target. .ORDER doesn't work right, but is used for things related
to the depend target. It "works" for the depend target by skipping
the build of .depend when N >= 2 and there is a non-default
beforedepend target with no rules. Recent fixes made almost all
the beforedepend targets in the tree a no-op except for this bug.

Removed vestiges of elf and aout targets.


34282 08-Mar-1998 obrien

add `CC' as a link to `c++' for compatablity with SGI.


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


34112 06-Mar-1998 bde

Fixed `make -jN' for large N. The usual method of pretending that all
objects depend on all generated headers doesn't work because it gives
cyclic dependencies. Give enough dependencies explicitly. We no
longer need to use .SINGLESHELL for `make depend'. .SINGLESHELL was
more of a bottleneck than usual because `make depend' makes everything.

Fixed some spelling and English errors.


32763 25-Jan-1998 jb

Change MACHINE -> MACHINE_ARCH so that the design make sense on those
machines where the processor chip determines the compiler, and where
multiple machines use the same architecture.


32423 11-Jan-1998 jb

More i386 -> ${MACHINE} changes to make this Makefile machine
independent. It makes it look like you can get aout on alpha, but
that's just your imagination. The makefile above gives you no choice.


32422 11-Jan-1998 jb

Replace i386 references with ${MACHINE} to make this makefile almost
machine independent, with the only dependency being the binary format
to build. We only expect to build ELF on alpha although we'll need
ECOFF compatibility with Digital Unix.


31820 17-Dec-1997 bde

<bsd.prog.mk> has included ../Makefile.inc for a long time, and there
are no complications involving .PATH or dependencies, so don't include
it here.


30113 05-Oct-1997 jkh

Changes to support full make parallelism (-j<n>) in the world
target.
Reviewed by: <many different folks>
Submitted by: Nickolay N. Dudorov" <nnd@nnd.itfs.nsk.su>


27040 29-Jun-1997 pst

NOSHARED takes a yes/YES no/NO value, not "true, false, hey mon!".
NOPIC is used to not generate a shared library, not NOSHARED.
Make NOSHARED advisory where appropriate.
Remove bogus NOSHARED (kbdio).


24336 28-Mar-1997 jdp

Change a "=" to "?=" to make it easier to override the binary format
from the environment.


22996 22-Feb-1997 peter

Revert $FreeBSD$ to $Id$


21928 21-Jan-1997 jkh

Remove incorrect use of double-negative since it means the same thing
to make but perhaps not to the human reading it.


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.


21635 13-Jan-1997 wosch

Sort cross references.


21508 11-Jan-1997 jmacd

Add the missing annotations.


18913 13-Oct-1996 peter

Build/install c++filt from g++, we already have all the sources and
it's and useful. (Ever tried to read 'nm' and 'ldd -v' output on a c++
object or library? :-) This filter decodes the mangled symbol names.)

Requested by: Chuck Robey <chuckr@glue.umd.edu>


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)


18607 01-Oct-1996 peter

Don't build config/i386/i386.o in the src/contrib/gcc tree..... :-]


18477 23-Sep-1996 bde

cpp was named ccp.


18473 23-Sep-1996 peter

Crude hack to work around cpp.1 doing a .so man1/cccp.1

Pointed out by: Warner Losh <imp@village.org>, PR#1667


18447 21-Sep-1996 jkh

Nuke a trailing .endif which survived Peter's last edits.


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.


17142 12-Jul-1996 jkh

General -Wall warning cleanup, part I.
Submitted-By: Kent Vander Velden <graphix@iastate.edu>


16663 24-Jun-1996 jkh

Bring in my changes for removing the pestilent obj links (unless you
really want them) from /usr/src. This is the final version of the
patches, incorporating the feedback I've received from -current.


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


14830 27-Mar-1996 joerg

f2c's -krd does not work with f77 wrapper
Closes PR # gnu/1101

Submitted by: kargl@troutmask.apl.washington.edu (Steven G. Kargl)


14003 09-Feb-1996 mpp

Add some missing MLINKS, correct some cross references, correct some
file locations and some minor formatting/style problems.


13458 16-Jan-1996 graichen

Reviewed by: jmz (Jean-Marc Zucconi)
added a simple man-page for our f77 (f2c/gcc driver)


13209 04-Jan-1996 jkh

Work around optimizer strength reduction bug.
Submitted by: Richard Henderson <richard@atheist.tamu.edu>
Obtained from: bug-gcc@prep.ai.mit.edu


13018 26-Dec-1995 bde

Enabled my FUNCTION_PROFILER_EPILOGUE code and added option
-mprofiler-epilogue to support it and documented the option.

cc.1:
Listed all the machine-dependent options, even the temporary
debugging ones.

invoke.texi:
Fixed the sense of -mno-ieee-fp.
Sorted the machine-dependent options.


11557 18-Oct-1995 dg

When building -static, link with special scrt0.o instead of crt0.o. This
reduces the text size by about 1.5Kbytes.


11135 02-Oct-1995 wollman

Make cc1plus smaller and faster as was done for cc1 by linking static.


11117 01-Oct-1995 dg

Build cc1 nonshared. This actually results in it consuming 40K *less* disk
space and improves compile times by a few percent.


10953 22-Sep-1995 phk

Stop using gnumalloc.


9910 04-Aug-1995 joerg

Make only a `-r' flag (as opposed to `-r*') special within the
LINK_SPEC. This solves a problem with the f77 frontend where
aproviding the -r8 option (use REAL*8) caused `cc' to ``forget'' to
pass the entry point to the linker.

Closes PR #gnu/644: f77 -r8

Reviewed by: watanabe@komadori.earth.s.kobe-u.ac.jp (Takeshi WATANABE)


9497 12-Jul-1995 bde

Fix dependencies for gcc.info and reno.info. `make depend' doesn't handle
info files although texinfo supports @include.


8858 30-May-1995 rgrimes

Remove trailing whitespace.


8562 17-May-1995 rgrimes

Make error message for no input files specified consistent across all
three compilers.

Submitted by: Thomas Graichen <graichen@sirius.physik.fu-berlin.de>


7115 17-Mar-1995 nate

Gcc v2.6.3 currently has a problem with templates. Specifically, with
default switches, template functions get EXTERNAL linkage in each file
in which they occur, causing multiple definition errors during
linking. The enclosed patch (from gnu.g++.bug) appears to solve the
problem (I enclose the accompanying message as well).

This patch fixes the multiply defined template functions bug
which was introduced in 2.6.1.

Submitted by: "Justin T. Gibbs" <gibbs@estienne.cs.berkeley.edu>
Obtained from: Jason Merrill at cygnus support on G++ mailing list


7048 13-Mar-1995 ache

Bump SHLIB_MAJOR to 263 to match ../Makefile.inc


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.


7024 12-Mar-1995 bde

Remove the last vestige of COMMENT_BEGIN.


7023 12-Mar-1995 bde

Undo most of the changes in the gcc-2.6.3 "upgrade"
- Don't define NO_IMPLICIT_EXTERN_C here. It is already the default
(defined in i386/bsd.h).
- Don't lose the fixed comment about FUNCTION_PROFILER.
- Don't lose the define of NO_PROFILE_DATA.

Replace the unused define of COMMENT_BEGIN by the less-unused define
of ASM_COMMENT_START. COMMENT_BEGIN was only defined in i386-specific
files and was not used in any part of gcc-2.6.3. ASM_COMMENT_START
is defined for several targets and is used for stuff that we don't
support (dwarf).


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.


6997 11-Mar-1995 nate

Added support for #pragma weak.

Obtained from: NetBSD


6996 11-Mar-1995 nate

Updated the sources to gcc 2.6.3 with FreeBSD changes already applied.
Note: This isn't the most correct way, but it works and it's fast.


6986 10-Mar-1995 dg

Define LINK_LIBGCC_SPECIAL_1 so that gcc will build static with libgcc.


6979 10-Mar-1995 phk

Since we are in the gcc bashing mood anyway: Add two changes for
basic-block profiling:
1. use a .stabs(25) symbol to link all the data structures together with.
The regular method isn't safe for the kernel.
2. add a BB before the prologue and add a BB after the epilogue, this
alows us to find the length of any counted BB. This is a cheap and somewhat
reasonable measure of actual cost.


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.


6906 05-Mar-1995 phk

"Various very violent dissections
disables dysfunctional disinformed namei's,
needlessly negating namei cache."

These hacks cuts the number futile attempts made by cc and ccp to find
cross-compilers and other weird stuff. A make of the BOOTFLP kernel
has 20% less namei calls now, that is from 30647 down to 24563 calls.


5782 22-Jan-1995 ache

Add doc subdir


5781 22-Jan-1995 ache

Add missing infopages


5238 26-Dec-1994 ats

Install also a gcc.1 manual page as a link from cc.1, as long as
we have the link cc to gcc.


4526 16-Nov-1994 ljo

Added NO_IMPLICIT_C as our header files in standard locations are either
already C++ safe, or C++ header files.
This fixes the problem with parse errors in header files when compiling C++
files.
Recompiling libg++ also solves the undefined synbols problem.


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.


4215 06-Nov-1994 bde

Restore my fixes to 2.6.0. The changes should not affect anything except
profiling and wchar_t. Profiled libraries will shrink.

tm.h:
Our wchar_t is int, not unsigned short.
Always link statically if profiling.
Define all the SPECs together.

final.c, tm.h:
Don't emit unused profiling code and data.

aux-output.c:
Always preserve the PIC register if profiling.

aux-output.c, tm.h:
Implement FUNCTION_PROFILER_EPILOGUE (currently not used).

New:
tm.h:
Set the target defaults in the correct way.


4144 04-Nov-1994 phk

Explicitly tell cpp where to look for include files.


4126 03-Nov-1994 phk

Bump the version-number of the "shared-gcc-internals" library. Will only
affect you if you decided to use that feature.


4115 03-Nov-1994 jkh

Remove obsolete __386BSD__ predefine.


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.


4085 02-Nov-1994 pst

Put a real man page in for cpp(1)... it needs to be converted to the mandoc
macros, but it's good enough for now.
Obtained from: gcc 2.6.0 gnu distribution


4058 01-Nov-1994 jkh

Link g++ -> c++, like I did with gcc -> cc. This is evil, but it's
now at least orthogonal evil.


4055 01-Nov-1994 jkh

Add LINKS to get gcc back.


3853 25-Oct-1994 ljo

Added f77 program. This is a modified version of the c++ program.
All it does is add -lf2c and -lm.


3848 25-Oct-1994 ljo

Added FORTRAN rule.


3840 25-Oct-1994 dg

Changed NO_SHARED_LIBCC_INT to SHARED_LIBCC_INT and changed the logic
as appropriate. This makes gcc not built with a shared cc_int the
default.


2938 20-Sep-1994 bde

Don't build profiled library.


2907 19-Sep-1994 wollman

For Bruce: -DNO_SHARED_LIBCC_INT reverts back to static libcc_int.
This makes the back end run faster, but at the cost of speed.


2871 18-Sep-1994 wollman

Make GCC's back end be shared among all languages. cc, c++, and cpp now
no longer link against the whole library, since they don't require much
from it, but just compile the few small modules they actually need static.

This should save a measurable amount of space; compare:

-r-xr-xr-x 1 bin bin 155648 Sep 18 18:00 cc1*
-r-xr-xr-x 1 root bin 1048576 Sep 18 17:33 cc1.noshae*

Of course, the library takes up a bit of space, but when you add in the
savings from the C++ compiler, you more than make up the difference:

-r--r--r-- 1 bin bin 1157344 Sep 18 18:27 /usr/lib/libcc_int.so.26.0
-r-xr-xr-x 1 bin bin 491520 Sep 18 18:27 /usr/libexec/cc1plus*


2863 18-Sep-1994 rgrimes

Add q modifier (for long longs) support to -Wformat.
Reviewed by: bde


2465 02-Sep-1994 bde

Disable one of my extensions (function profiler epilogues) that
we're not ready for yet. gcc and all profiled libraries will need
to be recompiled. I suspect that the dependencies aren't complete
enough to do this automatically.


2392 29-Aug-1994 dg

Use gnumalloc to help reduce memory consumption.


2375 28-Aug-1994 bde

Add dependencies on libraries to DPADD. Someday this should be done
automagically. -lfoo has to be right to work, but ${LIBFO0} is too
easy to forget or misspell; nothing checks it and it should be
different for shared libraries.


2247 23-Aug-1994 paul

Fixed up everything so that the version of gcc that we install from the
FreeBSD system sources installs itself as the standard cc and c++. I've
fixed c++ to call cc instead of gcc and removed all the symlinks
that get created to g** version of the binaries. This means that
you can install a second version of gcc that does use the g prefix
alongside the "system" version of gcc. The only conflict is libgcc
but since we install it as libcc.so.26 and nothing else is likely
to that should be ok.

Reviewed by:
Submitted by:


2144 20-Aug-1994 paul

Added -f to rm so install doesn't abort if the file doesn't exist.
Reviewed by:
Submitted by:


2003 10-Aug-1994 wollman

Define __FreeBSD__ to be 2.


1934 08-Aug-1994 phk

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


1824 02-Aug-1994 phk

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


1823 02-Aug-1994 phk

Here comes the right import of gcc-2.6.0.