1674 Commits

Author SHA1 Message Date
sjg
563e57bc30 We want an objdir 2013-10-13 00:20:12 +00:00
sjg
4aee07562b Latest version.
Report better parse errors.
2013-10-13 00:19:31 +00:00
sjg
39a494e86f Ensure _objroot is correctly formatted 2013-10-13 00:17:24 +00:00
sjg
1155ebd20e Ensure that $PROG isn't make .PHONY
Also add some additional control over staging (for use by bsd.test.mk)
2013-10-12 23:51:00 +00:00
sjg
ba615f358d Avoid errors when MACHINE is a pseudo machine like "common". 2013-10-12 23:49:26 +00:00
sjg
96ce9379f8 Add more vars we subst into DIRDEPS eg. BOOT_MACHINE_DIR and KERNEL_NAME.
Make it easier to add more.
2013-10-12 23:48:21 +00:00
sjg
5892775af6 Some cleanup and re-org.
Also update CFLAGS_LAST.clang to match new compiler version.
Add BOOT_MACHINE_DIR (so we can stick to unqualified Makefile.depend)
2013-10-12 23:46:41 +00:00
sjg
ec02da77ed Sync-up with what's being use in Juniper for building ATF in meta mode. 2013-10-12 23:44:50 +00:00
sjg
2054ae2360 Some re-org and cleanup.
Make it easier to subst some dirs in dirdeps with variables.
Tweak M_dep_qual_fixes esp. for pseudo machines like "host"
so that it can DTRT against _machines (in dirdeps.mk).
2013-10-12 23:42:55 +00:00
sjg
24eddddcdf When TARGET_SPEC_VARS is non-trivial, we need to apply the same filtering
when setting _machines as we do to _build_dirs.
2013-10-12 23:40:17 +00:00
sjg
ff87b5d147 Merge head 2013-09-11 18:16:18 +00:00
des
c3bd228383 Clean up the Kerberos build by turning libheimipcc and libheimipcs into
private shared libraries, instead of hacked-together archives of PIC
objects.  This makes it possible to build a static libkrb5 that works.

Reviewed by:	stas
Approved by:	re (gjb)
2013-09-10 18:40:43 +00:00
des
980d9d1fc0 Emit the correct standard library dependency line for C++ programs. In
the CLANG_IS_CC case, the default is now libc++.  Only use libstdc++ if
!CLANG_IS_CC or it was explicitly requested in CXXFLAGS.

Submitted by:	theraven
Approved by:	re (gjb)
2013-09-09 21:18:16 +00:00
des
aba57138f9 Make libldns and libssh private.
Approved by:	re (blanket)
2013-09-08 10:04:26 +00:00
des
fcb1c0aa6d Create a private library directory (LIBPRIVATEDIR) for libraries which
we don't want to expose but which can't or shouldn't be static.

To mark a library as private, define PRIVATELIB in its Makefile.  It
will be installed in LIBPRIVATEDIR, which is normally /usr/lib/private
(or /usr/lib32/private for 32-bit libraries on 64-bit platforms).

To indicate that a program or library depends on a private library,
define USEPRIVATELIB in its Makefile.  The correct version of
LIBPRIVATEDIR will be added to its run-time library search path.

Approved by:	re (blanket)
2013-09-08 09:40:23 +00:00
theraven
eee637eb83 Only set -Wno-c++11-extensions if we're building with clang, so bootstrapping
clang with gcc doesn't fail.
2013-09-06 20:42:14 +00:00
theraven
5d9c97fa88 Fix use of MACHINE_ARCH where MACHINE was intended for pc98 detection.
Reported by:	nwhitehorn
2013-09-06 20:23:15 +00:00
theraven
1df952388b 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, ...
2013-09-06 20:08:03 +00:00
sjg
62bb106222 Merge from head 2013-09-05 20:18:59 +00:00
emaste
4f53813f88 Connect libexecinfo to the build
Sponsored by:	DARPA, AFRL
2013-09-03 15:22:04 +00:00
pfg
a90a8d62c1 Drop build option switch for the older GNU patch.
As promised, drop the option to make the older GNU patch
the default.

GNU patch is still being built but something drastic may
happen to it to it before Release.
2013-08-29 00:38:24 +00:00
sjg
142ae77478 Use .SHELL to tell bmake to use 'set -e' when running scripts
since most FreeBSD makefiles it is in effect.

Move the other bmake compatability knobs out of the POSIX block.

Reviewed by: obrien
2013-08-27 23:09:34 +00:00
dteske
26cf485d21 It was brought to my attention that SVN r252862 was incomplete. It needed
to also make this change, to completely deprecate WITH_BSDCONFIG.
2013-08-27 14:48:01 +00:00
ae
b13ae17c06 Really disconnect pkg_install from the build.
Reported by:	Mikhail Timofeyev
2013-08-22 12:49:28 +00:00
peter
995e1f0063 The iconv in libc did two things - implement the standard APIs, the GNU
extensions and also tried to be link time compatible with ports libiconv.
This splits that functionality and enables the parts that shouldn't
interfere with the port by default.

WITH_ICONV (now on by default) - adds iconv.h, iconv_open(3) etc.
WITH_LIBICONV_COMPAT (off by default) adds the libiconv_open etc API, linker
symbols and even a stub libiconv.so.3 that are good enough to be able
to 'pkg delete -f libiconv' on a running system and reasonably expect it
to work.

I have tortured many machines over the last few days to try and reduce
the possibilities of foot-shooting as much as I can.  I've successfully
recompiled to enable and disable the libiconv_compat modes, ports that use
libiconv alongside system iconv etc.  If you don't enable the
WITH_LIBICONV_COMPAT switch, they don't share symbol space.

This is an extension of behavior on other system.  iconv(3) is a standard
libc interface and libiconv port expects to be able to run alongside it on
systems that have it.

Bumped osreldate.
2013-08-13 07:15:01 +00:00
pfg
97ac613107 Make the BSD-licensed patch the default.
The BSD-licensed patch(1) command has matured and it's behaviour
can be considered equivalent to the older version of GNU patch
in the tree.

The switch has been extensively tested [1] and only two ports
presented regressions, which have since been fixed.

For convenience a new WITH_GNU_PATCH option is available,
but it will likely be removed in the near future.

PR:		176313
Approved by:	portmgr
2013-07-26 21:25:18 +00:00
glebius
095f67f3f5 Fix build. 2013-07-22 14:23:46 +00:00
andrew
073bcf595a 2 years, 10 months, 22 days after the projects/arm_eabi branch was created
make the ARM EABI the default ABI on arm, armeb, armv6 and armv6eb.

This is intended to be the default ABI from now on with the old ABI to be
retired. Because of this all users are strongly suggested to upgrade to the
ARM EABI.

As the two ABIs are incompatible it is unlikely upgrading in place will
work. Users should perform a full backup and either use an external machine
to upgrade, or install to an alternative location on their media. They
should also reinstall all ports or packages when these are available.

The only known issues are:
 - pkg incorrectly detects the ABI. This is fixed upstream, and will a
   patch will be made to the port.
 - GDB can have issues with executables built with clang.

__FreeBSD_version has been bumped.
2013-07-16 19:15:19 +00:00
davide
0dd1d9c578 - Trim an unused and bogus Makefile for mount_smbfs.
- Reconnect with some minor modifications, in particular now selsocket()
internals are adapted to use sbintime units after recent'ish calloutng
switch.
2013-06-28 21:00:08 +00:00
eadler
afde4801cd Remove variable added by ru@ in r94940 that is no longer used by source or ports in share/mk/sys.mk
PR:		conf/155737
Reviewed by:	ed (two years ago!)
Exp-Run by:	bdrewery
2013-06-23 20:34:54 +00:00
peter
6c648dd642 Introduce svnlite so that we can check out our source code again.
This is actually a fully functional build except:
* All internal shared libraries are static linked to make sure there
  is no interference with ports (and to reduce build time).
* It does not have the python/perl/etc plugin or API support.
* By default, it installs as "svnlite" rather than "svn".
* If WITH_SVN added in make.conf, you get "svn".
* If WITHOUT_SVNLITE is in make.conf, this is completely disabled.

To be absolutely clear, this is not intended for any use other than
checking out freebsd source and committing, like we once did with cvs.

It should be usable for small scale local repositories that don't
need the python/perl plugin architecture.
2013-06-18 02:53:45 +00:00
jlh
36ff9e6437 Fix install from read-only obj dir when SHLIB_LDSCRIPT is used.
Reported by:    joeld
Tested by:      joeld
2013-06-16 16:29:23 +00:00
eadler
bf7c0f2705 Remove CVS from the base system.
Discussed with:	many
Reviewed by:	peter, zi
Approved by:	core
2013-06-15 20:29:07 +00:00
sjg
f0e9b38d90 Flag recursive make targets with .MAKE (has no effect on fmake)
make -n will still exectute such targets
make -N will not.

Reviewed by:	obrien
2013-06-14 16:25:41 +00:00
sjg
b66c288337 We cannot remove the _+_ trick, until old make is completely deprecated.
But we don't want to set it to + for bmake since it breaks make -N
which is used to supress the normal handling of targets marked with .MAKE
(which seems broken in fmake and might be why _+_ was introduced).
Add some comments to explain what's gong on.

Reviewed by:	obrien
2013-06-14 16:24:07 +00:00
jkim
28dc3d7503 Add a new CPUTYPE supported by Clang 3.3 for AMD Jaguar processors (btver2). 2013-06-13 18:26:12 +00:00
emaste
390d8402e0 Add a new knob WITH_DEBUG_FILES to control the building of standalone
debug files for userland programs and libraries.  The "-g" debug flag
is automatically applied when WITH_DEBUG_FILES is set.

The debug files are now named ${prog}.debug and ${shlib}.debug for
consistency with other systems and documentation.  In addition they are
installed under /usr/lib/debug, to simplify the process of installing
them if needed after a crash.  Users of bsd.{prog,lib}.mk outside of the
base system place the standalone debug files in a .debug subdirectory.
GDB automatically searches both of these directories for standalone
debug files.

Thanks to everyone who contributed changes, review, and testing during
development.
2013-06-07 21:40:02 +00:00
sjg
41b9477759 Override bmake's default MAKEFILE_PREFERENCE 2013-06-07 19:45:04 +00:00
sjg
b3b7fc783e Include more stuff within the meta mode block, so that buildworld
can function normally.

Submitted by:	John Van Horne
2013-06-04 15:25:57 +00:00
jlh
69fcd14b52 Rework the comment I initially wrote when SHLIB_LDSCRIPT was introduced.
The build system is really intricate and I had a hard time to remind the
whole picture even when reading my own words.  This one will hopefully
be better.
2013-05-25 22:17:14 +00:00
sjg
50a31d452c Build bmake by default.
If someone explicitly builds usr.bin/make while MK_BMAKE==yes,
install it as 'fmake'.

Reviewed by:	brooks
2013-05-16 15:28:38 +00:00
brooks
6b71588fb9 Add support for an external cross compiler. The cross compiler is
specified by passing the XCC, XCXX, and XCPP variables (corresponding to
CC, CXX, and CPP) to buildworld/buildkernel.  The compiler must be clang
or be configured to target the appropriate architecture.

To speed build times, if XCC is an absolute path or
WITHOUT_CROSS_COMPILER is defined then no cross compiler will be built
during the cross-tools stage.

Limited documentation of this feature can currently be found at:

https://wiki.freebsd.org/ExternalToolchain

This functionality should be considered experimental and is subject to
change without notice.

Sponsored by:	DARPA, AFRL
Discussed with:	imp, sjg
2013-05-15 14:30:03 +00:00
brooks
4d008876be Add a new option WITHOUT_FORMAT_EXTENSIONS to disable flags related to
checking our kernel printf extensions.  This is useful to allow
compilers without these extensions to build kernels.

Sponsored by:	DARPA, AFRL
2013-05-15 13:04:10 +00:00
sjg
3b6b8e9414 Bring meta2deps.sh closer to par with meta2deps.py 2013-05-11 05:10:31 +00:00
sjg
e7beb35a3f Cleanup some backwards compat stuff we do not need.
Introduce TARGET_OBJ_SPEC (derrived from TARGET_SPEC_VARS)
so we can build something like universe.
2013-05-11 01:03:29 +00:00
sjg
f5cd3c4cc7 If TARGET_OBJ_SPEC is no just MACHINE, pass it to meta2deps.py 2013-05-11 00:52:57 +00:00
sjg
e37d9edf75 Keep dirdeps for pseudo machines like "host" and "common" simple.
Also we need to use DEP_MACHINE_ARCH when expanding CSU_DIR
2013-05-11 00:51:59 +00:00
sjg
44dd681341 Allow caller to pass a TARGET_SPEC which may be more complex than
just MACHINE, for recognizing objects which do not need qualifying
in dirdeps.
2013-05-11 00:50:00 +00:00
eadler
a60d2c3219 Remove the WITH_IDEA option and build it unconditionally.
The European version of the patent expired in 2011.
The US version of the patent expired in 2012 or prior.

Reviewed by:	des
No objection from:	cperciva, ehaupt
2013-04-26 23:24:41 +00:00
sjg
dfd2a8c123 Pass more variables to bsd.prog.mk and
only append to already defined variables.

Submitted by:	Garrett Cooper
2013-04-22 18:11:29 +00:00