Commit graph

110 commits

Author SHA1 Message Date
Bryan Drewery
2a6d574e78 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
2016-06-15 23:57:53 +00:00
Bryan Drewery
d04dec453a 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
2016-06-15 23:57:46 +00:00
Bryan Drewery
ba7734de4c 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
2016-05-21 01:32:01 +00:00
Bryan Drewery
09fb6bff29 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
2016-04-18 18:13:58 +00:00
Bryan Drewery
b791fbe630 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
2015-11-25 19:44:43 +00:00
Bryan Drewery
266a154003 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
2015-09-26 14:15:01 +00:00
Simon J. Gerraty
bd831db65c Misc fixes from projects/bmake
Differential Revision:       D2748
Reviewed by: brooks imp
2015-06-11 21:13:05 +00:00
Andrew Turner
6d4766c1b8 Remove MK_ARM_EABI, the armeb issues have been fixed. The code to support
the oabi is still in the tree, but it is expected this will be removed
as developers work on surrounding code.

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

X-MFC after:	never
Relnotes:	yes
Differential Revision: https://reviews.freebsd.org/D876
2014-10-01 08:26:51 +00:00
Warner Losh
c6063d0da8 Use src.opts.mk in preference to bsd.own.mk except where we need stuff
from the latter.
2014-05-06 04:22:01 +00:00
Andrew Turner
1992e9a10c Add compiler support for the ARM EABI.
ARM EABI support is disabled by default and can be enabled by setting
WITH_ARM_EABI when building, however only the kernel-toolchain target will
work with this flag until the rest of the support is added.
2013-01-17 05:56:28 +00:00
Eitan Adler
37a6031461 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
2012-12-06 01:31:25 +00:00
Dimitry Andric
6d67f69487 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@
2011-04-17 21:03:23 +00:00
Tijl Coosemans
cac88fd591 Let gcc and ld know where to find 32 bit libraries on amd64.
Reviewed by:	arch@
Approved by:	kib (mentor)
2010-11-17 19:54:01 +00:00
Warner Losh
e8dce5b9b3 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.
2010-11-10 06:39:49 +00:00
Nathan Whitehorn
2cf64c8006 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
2010-07-10 02:29:22 +00:00
David E. O'Brien
4bdc01a9f9 Add FreeBSD/MIPS support to GCC. 2008-09-01 18:46:03 +00:00
David E. O'Brien
9dec52bfb2 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.
2008-08-31 23:38:28 +00:00
Andrey A. Chernov
f6d6295dd9 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
2007-11-18 11:59:44 +00:00
Alexander Kabaev
ba25c97b24 Fix compiles when user chooses to disable both ObjC and C++ support in
GCC.

Reported by: bz
2007-05-28 00:25:07 +00:00
Ruslan Ermilov
4c520cd4c6 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
2007-05-21 12:04:16 +00:00
Scott Long
ad08d9331d Work-around for upgrading from a pre-symbol-versioned world.
Blame-to: cperciva
2007-05-19 07:56:08 +00:00
Alexander Kabaev
afb57df680 Update bmake glue to build GCC 4.2.
Also:
        Switch FreeBSD to use libgcc_s.so.1.

        Use dl_iterate_phdr to locate shared objects' exception frame
        info instead of depending on older register_frame_info machinery.
        This allows us to avoid depending on libgcc_s.so.1 in binaries
        that do not use exception handling directly. As an additional
        benefit it breaks circular libc <=> libgcc_s.so.1 dependency too.

        Build newly added libgomp.so.1 library, the runtime support
        bits for OpenMP.

        Build LGPLed libssp library. Our libc provides our own
        BSD-licensed SSP callbacks implementation, so this library
        is only built to benefit applications that have hadcoded
        knowledge of libssp.so and libssp_nonshared.a. When linked
        in from command line, these libraries override libc
        implementation.
2007-05-19 04:25:59 +00:00
Warner Losh
a817992dfc 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
2006-09-18 17:08:32 +00:00
Warner Losh
ba15c568ab Fix three whitespace nits.
I think these are from kan@...
2006-09-11 05:12:12 +00:00
Ruslan Ermilov
e1fe3dba5c 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)
2006-03-17 18:54:44 +00:00
Alexander Kabaev
5f6d880564 Update bmake glue for GCC 3.4.4. 2005-06-03 04:21:04 +00:00
Ruslan Ermilov
7c996c4acc 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.
2004-08-18 13:21:40 +00:00
Alexander Kabaev
3b76f3bcca Consolidate libiberty files in one place and avoid listing some
of them in several places.

Noticed by:	bsdimp
2004-08-12 16:36:52 +00:00
Alexander Kabaev
81efba8c9e Bmake glue for GCC 3.4.2-prerelease. 2004-07-28 05:27:21 +00:00
Peter Wemm
20fe68acb9 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.
2004-06-11 00:35:29 +00:00
Peter Wemm
aabc36c5b8 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.
2004-06-10 22:18:33 +00:00
Bruce Evans
c561816b66 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).
2004-02-26 07:08:33 +00:00
Alexander Kabaev
1d38183672 Do not treat make variables as Perl variables. 2004-01-26 16:12:29 +00:00
Ruslan Ermilov
0161ff2670 Fixed "make clean". 2004-01-15 10:07:59 +00:00
Ruslan Ermilov
1b427c9cd4 Removed duplicate SRCS. 2004-01-12 07:46:20 +00:00
Alexander Kabaev
e67810e696 Update bmake bits to build GCC 3.3.1-prerelease. 2003-07-11 05:37:23 +00:00
Peter Wemm
fc369c7cd9 Add missing quote after cut/paste error in last commit. :-( 2003-06-26 20:34:08 +00:00
Peter Wemm
01e5a2aede Configure gcc in biarch mode for amd64 so that the -m32 flag is enabled
for things like boot blocks etc.

Reviewed by:  kan
2003-06-26 03:02:32 +00:00
David E. O'Brien
8f3bf9945d Lock GCC w/o -m32 into 64-bit mode. 2003-05-01 15:00:46 +00:00
David E. O'Brien
a12d8aed9a We're changing the platform name from x86[_-]86 to amd64. 2003-04-26 20:04:38 +00:00
Alexander Kabaev
9734ce03a2 Add multilib_options variable definition.
Approved by:	obrien
2002-10-10 04:56:35 +00:00
David E. O'Brien
1ca4970561 We're going to have to use a TARGET_ARCH of "x86_64" rather than "x86-64"
to make building GCC happy.
2002-09-12 15:56:21 +00:00
David E. O'Brien
5a87307b7f Use a more API denoting way to handle what is in libc and what isn't. 2002-05-18 04:49:44 +00:00
Ruslan Ermilov
2898afe627 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.
2002-05-16 15:18:13 +00:00
David E. O'Brien
fcbdc1f8a0 Add x86-64 bits. 2002-05-15 22:40:50 +00:00
David E. O'Brien
23735e10dd The IA-64 config needs to know that we are using GNU ld & as.
Submitted by:	peter
2002-05-15 21:59:46 +00:00
David E. O'Brien
d147c3da04 Touching the sjlj setting on IA-64 makes things not build.
Submitted by:	peter
2002-05-10 17:42:19 +00:00
David E. O'Brien
415f2bb46f Gather up the stragglers that depends on genrtl.h. This is -j10 safe now. 2002-05-10 10:21:19 +00:00
David E. O'Brien
01c50f1782 This was *very* -j unsafe. Add a dependency on the common generated
headers to mostly make it -j1 safe.
2002-05-10 10:14:53 +00:00
David E. O'Brien
3cdd876f04 Bmake bits for Gcc 3.1.
Partially made possible by:	Wilko.Bulte@compaq.com
2002-05-10 08:54:50 +00:00