History log of /freebsd-10.1-release/Makefile.inc1
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 272461 02-Oct-2014 gjb

Copy stable/10@r272459 to releng/10.1 as part of
the 10.1-RELEASE process.

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

# 271333 09-Sep-2014 emaste

MFC improved vt(4) font generation

r266851: Add VGAROM 8x8, 8x14 and 8x16 fonts for vt(4)

These are converted from syscons(4) cp437 fonts.

r267306: Add vgarom font source

These are in 'GNU Unifont' format, and are converted from syscons(4)
cp437 fonts.

r267400: Add thin versions of VGAROM 8x8 and 8x16 fonts for vt(4)

These are converted from syscons(4) cp437-thin-8x* fonts.

r267423: Build vt(4) fonts during buildworld

vtfontcvt(8) is now built during buildworld, so can be used as a
bootstrap tool to create vt(4) fonts from source .hex or .bdf font
files, rather than having uuencoded binary fonts in the tree.

r267578: Add glyphs from converted syscons iso* fonts

This consists of the unique glyphs from the following font files in
/usr/share/syscons/fonts:

iso*.fnt ISO-8859-1 West European
iso02*.fnt ISO-8859-2 Central European
iso04*.fnt ISO-8859-4 Baltic
iso05*.fnt ISO-8859-5 Cyrillic
iso07*.fnt ISO-8859-7 Greek
iso08*.fnt ISO-8859-8 Hebrew
iso09*.fnt ISO-8859-9 Turkish
iso15*.fnt ISO-8859-15 West European

r268022: Rename the WITHOUT_VT_SUPPORT knob to WITHOUT_VT

The _SUPPORT knobs have a consistent meaning which differs from the
behaviour controlled by this knob. As the knob is opt-out and has not
appeared in a release the impact should be low.

Approved by: re
Sponsored by: The FreeBSD Foundation


# 270824 29-Aug-2014 ngie

MFC r270027:

tmconfig compilation when MK_ATM == yes and MK_BSNMP == no

Makefile.inc1:
Always compile gensnmptree with bootstrap-tools when MK_BSNMP != no
instead of depending on a potentially stale tool installed on the build host

sbin/atm/atmconfig/Makefile:
- Always remove oid.h to avoid cluttering up the build/src tree.
- Consolidate all of the RESCUE/MK_BSNMP != no logic under one
conditional to improve readability
- Remove unnecessary ${.OBJDIR} prefixing for oid.h and use ${.TARGET} instead
of spelling out oid.h
- Add a missing DPADD for ${LIBCRYPTO} when compiled MK_BSNMP == yes and
MK_OPENSSL == yes and not compiling for /rescue/rescue

sbin/atm/atmconfig/main.c:
Change #ifndef RESCUE to #ifdef WITH_BSNMP in main.c to make it
clear that we're compiling bsnmp support into atmconfig


# 270600 25-Aug-2014 ian

Revert r270079 which was MFC of r269688, build libohash while bootstrapping.

The changes to split the ohash code out of m4 into its own library haven't
been MFC'd, so this change was causing an error during bootstrap when
building stable-10.

Submitted by: Dai Sieh <dsieh@dsieh.com>
Pointy hat to: ian


# 270284 21-Aug-2014 ian

MFC r260401

Remove aicasm as a build dependency. It made sense when the ahc and ahd
drivers and their firmware were under active development, but those days
have passed. The firmware now exists in pre-compiled form, no longer
dependent on it's sources or on aicasm. If you wish to rebuild the
firmware from source, the glue still exists under the 'make firmware'
target in sys/modules/aic7xxx.

This also fixes the problem introduced with r257777 et al with building
kernels the old fashioned way in sys/$arch/compile/$CONFIG when the
ahc/ahd drivers were included.


# 270274 21-Aug-2014 ian

MFC r257637, r257730, r257734, r257777, r257825, r257838, r257873:

Changes to how the aicasm tool is built. This series of changes results
in the aicasm tool being built as part of the tools stages of world and
kernel builds.

Most of these changes will ultimately be undone when r260401 is MFC'd,
but it will leave in place the new kernel-build-tool machinery (KTMAKE
stuff) in case a new special kernel tool ever comes along.


# 270187 19-Aug-2014 ian

MFC r266473,267331,267511:

Use an intermediate target to associate with _SUBDIR which is marked .MAKE
this allows make -n to do tree walks as expected without
doing anything else (as intended).
Use prefix _sub. to help avoid conflict with any real target.

Put the test suite in its own tests.txz distribution file.
Force all the contents of /usr/tests to go into a separate distribution
file so that users of binary releases can easily choose to not install

Create a mechanism for providing fine-grained build order dependencies
during SUBDIR_PARALLEL builds. This augments the coarse .WAIT mechanism,
which is still useful if you've got a situation such as "almost everything
depends on A and B".


# 270079 17-Aug-2014 ian

MFC r269688: m4 now requires libohash, build it when bootstrapping.


# 269967 14-Aug-2014 roberto

MFC r269662:

10 has a new flex (2.5.37) and the config.h for unbound has been updated to
take this into account. Alas it breaks source upgrade from any version of
9 because flex is not built as a bootstrap-tools (it would be for older
versions).

That means "libunbound/configlexer.c" is built with the old flex but using
config.h for the new one. Build is thus broken going from 9.* to 10.

Make flex a bootstrap-tools entry if host is less than 1000033 to take into
account the flex update in 10.

Tested on both 9.2-RC3 and 9.3 by myself and dim@. Running buildworld in
head but as both 10 and 11 has the new flex, it will not matter.

Reviewed by: imp
Approved by: des, imp
MFC after: 1 week
Phabric: D554


# 269913 13-Aug-2014 rpaulo

MFC r269744
Run dtrace in 32-bit mode when compiling 32-bit libraries.


# 269078 24-Jul-2014 dim

MFC r268957:

Run mtree for BSD.tests.dist during make xdev-install, if the tests are
enabled (which they are in the default configuration). Otherwise, it
will fail because ${XDDESTDIR}/usr/include/atf-c does not exist.


# 267823 24-Jun-2014 bdrewery

MFC r267599:

- Add a LOCAL_ITOOLS to allow adding additional tools required for the
installworld and distributeworld targets

PR: 179562


# 266758 27-May-2014 delphij

MFC r266520:

Explicitly link libzfs against libavl as it is done in OpenSolaris
(4543:12bb2876a62e). Without this, some third party applications
may break because the lack of AVL related symbols.

FreeBSD base system are not affected because the FreeBSD ZFS command
line tools were all linked against libavl and thus hide the underlying
issue.

PR: bin/183081


# 266717 26-May-2014 ian

MFC 263949, 265063: Add library dependencies for a couple bootstrap libs
to fix build failures for high -jN values when building with gcc.


# 266251 16-May-2014 ian

MFC 262614, 262625, 262626, 262627, 262682, 262714, 262725, 262736

Integrate device-tree upstream files into the build process:
(1) Invoke cpp to bring in files via #include (although the old
/include/ stuff is supported still).
(2) bring in files from either vendor tree or freebsd-custom files
when building.
(3) move all dts* files from sys/boot/fdt/dts to
sys/boot/fdt/dts/${MACHINE} as appropriate.
(4) encode all the magic to do the build in sys/tools/fdt/make_dtb.sh
so that the different places in the tree use the exact same logic.
(5) switch back to gpl dtc by default. the bsdl one in the tree has
significant issues not easily addressed by those unfamiliar with
the code.

Only try to build the static dtb when we're building a static dtb.

Use proper include path for dtc as well as cpp.

Fix syntax errors (missing ; other minor glitches) in existing dts files.


# 265894 11-May-2014 thomas

MFC rev. 265260:
Add appropriate quoting to allow building with a KERNCONFDIR containing
spaces.

PR: kern/162736


# 264372 12-Apr-2014 bapt

MFC: r263881, r263952, r263983, r264068, r264090, r264131

Some xdev fixes:

- if TARGET_ARCH is not defined and XDEV_ARCH is defined then early define
TARGET_ARCH to the valud of XDEV_ARCH: This allow the xdev-build target
to be able to correctly chose the compiler it needs to build
- Allow overwriting XDTP to allow a user to not chose where the xdev env will
live in
- Fix build for gcc only xdev (like ia64) by providing the proper -B to the
toolchain and not relying on gcc being installed already in base
- Fix TOOLS_PREFIX so the generated toolchain has the right default sysroot when
installed intead of getting the DESTDIR one
- Fix supporting DESTDIR
- Also overwrite CXX (needed for cross building c++ libraries with clang) and
CPP (needed to cross build some libraries when gcc is the target default
compiler but gcc is not installed on the building host)
- Prevent XDTP from being a relative path:
XDTP is used as the default SYSROOT for clang and thus should be an absolute path.
- Respect default CC


# 264325 10-Apr-2014 asomers

MFC r263429

Fix kern/187712: config(8) does not respect KERNCONFDIR.
The impact of this bug is that you cannot build a kernel if both of the
following are true:
1) The kernel config file is in a non-default location
2) The kernel config file uses the "include" statement from config(5).

usr.sbin/config/main.c
usr.sbin/config/config.8
usr.sbin/config/config.h
usr.sbin/config/lang.l
Added a "-I path" option to config(8). By analogy to cc(1), it adds
an extra path in which the "include" statement will search for
files.

Makefile.inc1
Pass "-I ${KERNCONFDIR}" to config(8).


# 263665 23-Mar-2014 dim

Turn off warnings for building aicasm. Various versions of yacc exist,
which can result in different warnings-as-errors in this tool, but these
are all completely harmless.

This is a direct commit to stable/7, stable/8, stable/9 and stable/10,
since this kernel build tool has already been removed in head.


# 261849 13-Feb-2014 asomers

MFC r261132

Fix the build so -DNO_TESTS is passed in various phases that don't require
tests in order to build or install. Crucially, don't try to install tests
during the lib32 install phase. This commit supersedes r261081, which fixed
the lib32 install phase problem, but didn't fix other phases.

Submitted by: Garrett Cooper
Reviewed by: sjg


# 260024 28-Dec-2013 jmmv

Plug the ATF tests into the build.

This is a MFC into stable/10 of:
- r257849 Add libatf-c++ to the prebuild libs.
- r257853 Build and install the atf tests.
- r258233 Move all atf directories to the tests mtree.
- r258285 Fix the build of some ATF tests.

This change is "make tinderbox" clean on ref10-amd64 with the default
settings of WITHOUT_TESTS. It is likely for the WITH_TESTS build to
still be broken because not all relevant changes have been merged yet.


# 260013 28-Dec-2013 jmmv

Set up the /usr/tests hierarchy.

This is a MFC of the following into stable/10:
- r257097 Set up the /usr/tests hierarchy.
- r257098 Add missing WITHOUTTESTS file.
- r257100 Add a tests(7) manual page.
- r257105 Disable WITHTESTS= for now.
- r257848 Fix buildworld when WITHTESTS is enabled.
- r257850 Subsume the functionality of MKATF into MKTESTS.
- r257851 Handle the removal of the test suite when WITHOUTTESTS=yes.
- r257852 Install category Kyuafiles from their category directories.
- r258232 Install BSD.tests.mtree when MKTESTS is yes.

Note that building with WITH_TESTS is still broken at this point (and
hence why WITHOUT_TESTS is the set as the default). Subsequent pullups
will fix the remaining issues.


# 259312 13-Dec-2013 ian

MFC 256640: Allow 'make xdev' to work when DESTDIR is set.


# 259073 07-Dec-2013 peter

Hoist all the mergeinfo up to the root in preparation for enforcing merges
to the root only. All MFC's were rerecorded to the root.

Going forward, if an MFC includes mergeinfo, it will need to be made to
the root and committed from the root. Merges with --ignore-ancestry
or diff | patch can go anywhere.

The mergeinfo in HEAD is in a bad state from years of neglect and manual
tampering and this was branched into 10.x. This confuses the coalescing
code and prevents it from doing its job.

Approved by: re (gjb, implicit)


# 258536 24-Nov-2013 cperciva

MFC r258086:
Strip the -pN patch level from the VERSION string which gets encoded into
CTF data. Otherwise FreeBSD Update builds think every kernel file has
changed every time there's a security advisory, since the FreeBSD Update
build code isn't smart enough to look inside CTF data to ignore those
changes.

Approved by: re (gjb)


# 258398 20-Nov-2013 peter

MFC r258283 - move iconv* symbols out of libc.so.7 namespace with
compatibility symbols to aid transition for existing 10.x installs.

Approved by: re (kib)


# 257563 03-Nov-2013 delphij

MFC r257350:

In r257079, SRCDIR is pointed to ${.CURDIR} when not set. However,
Makefile.inc1 is being called in sub-make's where make(1) would,
by default, implicitly chdir(2) to ${.OBJDIR} before executing any
targets. This would make some targets, like delete-old, when trying
to derive various variables introduced by change r256921 using
``make -f Makefile.inc1'' that also rely on SRCDIR to fail.

This changeset adds an explicit cd ${.CURDIR} before these unwrapped
make calls, making them in line with the other ones that are already
being wrapped with the explicit chdir's.

Approved by: re (hrs)


# 257509 01-Nov-2013 gjb

MFC r257329 (nyan):
Fix build, both clang and gcc are required on pc98.

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


# 257449 31-Oct-2013 brooks

MFC r256915

Stop conflating WITHOUT_CLANG with WITHOUT_CLANG_IS_CC. This allows
bootstrapping a copy of clang without building clang for the base system

which is useful for nanobsd and similar setups. It's still probably
wrong to conflate what is installed as /usr/bin/cc with the selection
of a bootstrap compiler under WITH*_CLANG_IS_CC, but that's for another
day.

Sponsored by: DARPA/AFRL
Approved by: re (gjb)


# 257136 25-Oct-2013 gjb

MFC r257079:
Fix build host pollution by avoiding calling 'uname -srp' to
determine values for 'VERSION'.

Approved by: re (glebius)


# 257053 24-Oct-2013 bdrewery

MFC r256842:

Fix 'make delete-old-libs' and 'make check-libs' to delete .debug
files created by WITH_DEBUG_FILES. Also cleanup .symbols files from
the period between r244236 when .symbols were supported and r251512
when they were renamed to .debug.

Only propose to delete a .debug file if the corresponding library
itself was deleted already.

Approved by: bapt
Approved by: re (glebius)


# 256947 22-Oct-2013 gjb

Revert r256944, which does not quite get the src/ directory correct.

Discussed with: cperciva
Approved by: re (implicit)
Pointyhat: gjb


# 256944 22-Oct-2013 cperciva

MFC r256921:
Thou shalt not leak build host state into the system being compiled.

Approved by: re (gjb)


# 256281 10-Oct-2013 gjb

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

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


# 255981 01-Oct-2013 delphij

Revert-and-redo r255955: the sort -r should be added to delete-old-dirs.

Approved by: re (gjb)


# 255955 30-Sep-2013 delphij

Reverse directories order when doing 'make delete-old-dir'. This
ensures subdirectories gets removed before their parents when doing
make delete-old.

Approved by: re (gjb)
MFC after: 2 weeks


# 255949 30-Sep-2013 des

Remove BIND.

Approved by: re (gjb)


# 255859 24-Sep-2013 jhb

Don't parse NO_ROOT metadata for extra kernels if NO_ROOT isn't defined.

Approved by: re (gjb)
MFC after: 1 week


# 255784 22-Sep-2013 andrew

Remove the armv6eb architecture as it is unused, and almost certainly
broken. None of our kernels can boot armv6eb. The little-endian kernels do
not have the required code to be able to switch endian when running a
big-endian executable.

Approved by: re (gjb)


# 255660 17-Sep-2013 bdrewery

Fix 'make installcheck' to check for missing UID/GID as well, broken
since r249893, by adding a separate _installcheck_world and
_installcheck_kernel so the destination targets can be more explicit
on which they are needed for.

installcheck will call both, while installworld only calls
_installcheck_world and installkernel only calls _installcheck_kernel

While here, mark the internal targets as starting with _.

Reported by: des
Reviewed by: des
Pointyhat to: bdrewery
Approved by: re (delphij)


# 255634 17-Sep-2013 des

Add unbound to the list of UIDs / GIDs to check fore before installing.

Approved by: re (blanket)


# 255460 10-Sep-2013 des

Clean up the OpenSSH build. It is now possible to build most components
as static binaries, if desired. The one exception is sshd, which runs
into trouble due to libpam.a's includion of pam_ssh.

Make OpenSSH use LDNS if available. This allows it to verify signed
SSHFP records.

Approved by: re (blanket)


# 255384 08-Sep-2013 des

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)


# 255048 29-Aug-2013 bdrewery

- Fix LOCAL_MTREE so it properly handles multiple files and quotes
its value into submakes

PR: conf/179466
Submitted by: Garrett Cooper <yaneurabeya@gmail.com>
Approved by: bapt
MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division


# 254225 11-Aug-2013 peter

Update nvi-1.79 to 2.1.1-4334a8297f

This is the gsoc-2011 project to clean up and backport multibyte support
from other nvi forks in a form we can use.

USE_WIDECHAR is on unless building for the rescue crunchgen. This should
allow editing in the native locale encoding.

USE_ICONV depends on make.conf having 'WITH_ICONV=YES' for now. This
adds the ability to do things like edit a KOI8-R file while having $LANG
set to (say) en_US.UTF-8. iconv is used to transcode the characters for
display.

Other points:
* It uses gencat and catopen/etc instead of homegrown msg catalog stuff.
* A lot of stuff has been trimmed out, eg: the perl and tcl bindings which
we could never use in base anyway.
* It uses ncursesw when in widechar mode. This could be interesting.

GSoC info: http://www.google-melange.com/gsoc/proposal/review/google/gsoc2011/zy/1
Repo at: https://github.com/lichray/nvi2

Obtained from: Zhihao Yuan <lichray@gmail.com>


# 253580 23-Jul-2013 emaste

Generate debug data release dist sets

If WITH_DEBUG_FILES is set the standalone debug data will be excluded
from each ${dist}.txz and placed in a ${dist}.debug.txz.

Submitted by: gjb
Reviewed by: brooks


# 252856 05-Jul-2013 sjg

Sprinkle some .MAKE magic


# 252419 30-Jun-2013 sjg

Use && rather than ; when success of previous job matters.


# 251765 14-Jun-2013 brooks

Simplify the hierarchy target's logic. [0]

Run hierarchy with WORLDTMP in the path so it works when it is invoked
directly. Such use is nearly alwasy wrong but appears to be common.[1]

PR: conf/178209 [0], conf/178547 [1]
Submitted by: Garrett Cooper <yaneurabeya@gmail.com> [0]
MFC after: 5 days


# 251750 14-Jun-2013 sjg

Flag recursive make targets with .MAKE
so that job token pipe is passed to them.
To avoid surprising anyone, only add .MAKE to ${TGTS} when -n
has not been specified (at least for Makefile).

Reviewed by: obrien


# 251689 13-Jun-2013 brooks

Be more agressive about bootstrapping ctfmerge and ctfconvert so
builds from existing releases have a chance of working properly.

Sponsored by: DARPA, AFRL
MFC after: 3 days


# 251512 07-Jun-2013 emaste

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.


# 251443 05-Jun-2013 jilles

release: Allow empty extra distributions.

For example, WITHOUT_SHAREDOCS= in src.conf creates an empty doc
distribution.

Submitted by: Kurt Lidl
Tested by: Kurt Lidl
Discussed with: gjb
MFC after: 1 week


# 251141 30-May-2013 brooks

Restore (at least temporarily) SHARED=symlinks in the build includes
stage of buildworld. This was accidentally included in r251140.

Reported by: jhb


# 251140 30-May-2013 brooks

Always define INSTALL_DDIR and define it such that it contains no extra
/ characters rather than removing them later on. This should fix
release builds.

PR: conf/178963
Reviewed by: gjb, hrs


# 251084 28-May-2013 gjb

r245757 introduced warning output if update method is set to CVS_UPDATE
or SUP_UPDATE.

CVS exporter for head/ is turned off for nearly one month now.

It is finally time to swing the ax at these update methods.

Reviewed by: eadler
MFC after: 1 month


# 251075 28-May-2013 gjb

Update comments to reflect use of svn/svnup to keep the src/ tree up
to date.

MFC after: 3 days


# 251074 28-May-2013 peter

Temporarily revert r251058 - it breaks documented use of makeoptions
including the tinderbox.

http://tinderbox.freebsd.org/tinderbox-head-build-HEAD-i386-i386.full
make: don't know how to make modules-all. Stop
make: stopped in /obj/i386.i386/src/sys/PAE
*** Error code 2


# 251058 28-May-2013 des

During buildkernel, print a banner before building modules.


# 251000 26-May-2013 eadler

Remove backwards compat layer which was added in r71419 (in 2001).

This change is not intended for MFC.

Reviewed by: peter


# 250969 24-May-2013 marcel

Fix building on slightly older -current and stable systems after
the switch to bmake. The rescue bits are built via crunchgen,
which didn't respect the MAKE environment variable until r237574
(i.e. ~11 months ago). This resulted in a failure due to bmake's
internal -J flag being passed around and not being understood by
the standard (i.e. host's) make.
Note that the failure is conditional upon having the jobServer
feature enabled within bmake.


# 250881 21-May-2013 jkim

Connect flex 2.5.37 to the build and bump __FreeBSD_version.


# 250859 21-May-2013 brooks

Restore the ability to build on systems with 32-bit compat when
the system compiler is not clang. clang and gcc appear to differ
signficantly in their interpretation of -isystem and --sysroot. Further
work is likely required to support an external gcc.

Reported by: andreast, fidaj@ukr.net, sergey.dyatko@gmail.com


# 250832 20-May-2013 brooks

Fix distributekernel in the non NO_ROOT case.

PR: conf/178775
Submitted by: Garrett Cooper <yaneurabeya@gmail.com>


# 250707 16-May-2013 brooks

Implement NO_ROOT support for distributekernel and packagekernel.


# 250659 15-May-2013 brooks

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


# 250510 11-May-2013 antoine

Add compile_et to kerberos bootstrap tools.
This makes it possible to build a regular world on a host without kerberos.

PR: conf/178421
Submitted by: Garrett Cooper
MFC after: 1 month


# 250143 01-May-2013 benno

Optimize SUBDIR_OVERRIDE such that SUBDIR isn't automatically defined if
SUBDIR_OVERRIDE is defined.

PR: conf/174071
Submitted by: Garrett Cooper <yaneurabeya@gmail.com>
Sponsored by: EMC / Isilon Storage Division


# 250048 29-Apr-2013 eadler

A transition period of more than two years is more than enough:
Remove the compatibility code added in 2011-02-10.

This change is not intended for MFC

Reviewed by: imp


# 249893 25-Apr-2013 bdrewery

Fix installworld with DB_FROM_SRC after r249807

Approved by: bapt
Reported by: Tom Everett


# 249807 23-Apr-2013 bdrewery

Fix installkernel requiring users/groups defined in CHECK_UIDS
and CHECK_GIDS to exist since r152680. This is only needed for
installworld. The documented procedure of running mergemaster -p
to check for missing users is only needed for installworld, not
for installkernel. This fixes auditdistd incorrectly being
required for installkernel.

PR: misc/174405
Approved by: bapt


# 249682 20-Apr-2013 trociny

This should have been committed in r249666.

MFC after: 1 month


# 249423 12-Apr-2013 dim

Upgrade our copy of llvm/clang to trunk r178860, in preparation of the
upcoming 3.3 release (branching and freezing expected in a few weeks).

Preliminary release notes can be found at the usual location:
<http://llvm.org/docs/ReleaseNotes.html>

An MFC is planned once the actual 3.3 release is finished.


# 248941 31-Mar-2013 andrew

Fix xdev-install when installing to a location other than /


# 248940 31-Mar-2013 andrew

Fix xdev. Clang and libc were not building correctly on older worlds, for
example, on 9.1.
* To fix clang add an _xb-bootstrap-tools target that mirrors the existing
bootstrap-tools target in the full world.
* For libc have the compiler use the newly installed includes, and, while
here, tell the compiler about the xdev library path as some other
libraries will link against the installed libraries.


# 248797 27-Mar-2013 rene

Fix a typo, 'xdev-build' should be spelled with a 'd' at the end.

Approved by: cognet


# 248571 21-Mar-2013 mm

Merge libzfs_core branch:
includes MFV 238590, 238592, 247580

MFV 238590, 238592:
In the first zfs ioctl restructuring phase, the libzfs_core library was
introduced. It is a new thin library that wraps around kernel ioctl's.
The idea is to provide a forward-compatible way of dealing with new
features. Arguments are passed in nvlists and not random zfs_cmd fields,
new-style ioctls are logged to pool history using a new method of
history logging.

http://blog.delphix.com/matt/2012/01/17/the-future-of-libzfs/

MFV 247580 [1]:
To address issues of several deadlocks and race conditions the locking
code around dsl_dataset was rewritten and the interface to synctasks
was changed.

User-Visible Changes:
"zfs snapshot" can create more arbitrary snapshots at once (atomically)
"zfs destroy" destroys multiple snapshots at once
"zfs recv" has improved performance

Backward Compatibility:
I have extended the compatibility layer to support full backward
compatibility by remapping or rewriting the responsible ioctl arguments.
Old utilities are fully supported by the new kernel module.

Forward Compatibility:
New utilities work with old kernels with the following restrictions:
- creating, destroying, holding and releasing of multiple snapshots
at once is not supported, this includes recursive (-r) commands

Illumos ZFS issues:
2882 implement libzfs_core
2900 "zfs snapshot" should be able to create multiple,
arbitrary snapshots at once
3464 zfs synctask code needs restructuring

References:
https://www.illumos.org/issues/2882
https://www.illumos.org/issues/2900
https://www.illumos.org/issues/3464 [1]

MFC after: 1 month
Sponsored by: Hybrid Logic Inc. [1]


# 247285 25-Feb-2013 des

In all situations where we need to bootstrap yacc, we also need to
bootstrap liby. This was not readily apparent, because a normal 'make
buildworld' or 'make toolchain' builds liby before building anything
that uses yacc. However, 'make kernel-toolchain' does not build
headers or libraries, so it was not possible to build a kernel from
head on, say, stable/9 without first building the complete toolchain.

MFC after: 1 week


# 246784 14-Feb-2013 hrs

- Fix libmd dependency. It is needed in the bootstrap library list because
usr.bin/xinstall depends on it.
- Remove libutil from usr.bin/xinstall/Makefile. No symbol was actually used.

Reviewed by: brooks


# 246602 09-Feb-2013 brooks

Add nmtree to ITOOLS if it is installed on the host instead of keying off
the BOOTSTRAPPING variable. The previous test was wrong because
BOOTSTRAPPING is 0 in most cases.

Tested by: db


# 246315 04-Feb-2013 andrew

Fix xdev by using the install shell script as it knows about the -l
argument thile the local version install may not.


# 246283 03-Feb-2013 hrs

- Add CHECKSUM.* support in Makefile[1].
- Use ln -fs to create a symlink.
- Remove pkgadd for docports.
- Use WITHOUT_JADETEX=yes instead of WITH_JADETEX=no.
- Add {WORLD,KERNEL}_FLAGS to [BTWK]MAKE.
- Use makefs(8) and gpart(8) for sparc64 ISO image[2].
- Add publisher option to makefs(8)[2].

Based on work by: gjb[1]
Discussed with: marius, nwhitehorn[2]


# 246097 29-Jan-2013 brooks

Log the addition of login.conf.db, passwd, pwd.db, and spwd.db via cat -l.

Make cat a bootstrap tool to facilitate this.


# 246096 29-Jan-2013 brooks

Fix installworld when nmtree is not on the host by only adding it to
ITOOLS when we will be using the host copy.

Fix installkernel when -DNO_ROOT is set.


# 246092 29-Jan-2013 brooks

Fix installworld when the host does not need to bootstrap nmtree.

Reported by: lev, jmg


# 245918 25-Jan-2013 gjb

Fix update method (s/SUP/CVS) warning.

Submitted by: Ryan Stone
MFC after: 1 day


# 245890 24-Jan-2013 brooks

Strip any trailing slash off of the -D argument to install to support the
rather fragile destdir stripping in the metalog.


# 245825 22-Jan-2013 brooks

Introduce a new option -DNO_ROOT that allows install and distribution
targets to be run without root privilege.

Information about ownership, group, flags, and suid bits are stored in
the file specified by METALOG which defaults to ${DESTDIR}/METALOG.
This file can be used in conjunction with bsdtar or makefs to generate
archives or file system images with correct permissions.

The packageworld target has been altered to use this metadata allowing
non-root releases (subject to further changes in release/Makefile.)

Sponsored by: DARPA, AFRL
Reviewed by: ian, ray


# 245822 22-Jan-2013 theraven

Fix spurious leading / on dtc path in Makefile.inc1. Spotted by jhb.


# 245803 22-Jan-2013 theraven

Import new (BSDL) device tree compiler. Now built by default, so that it can't
be used on the host system (and not installed on the device, if required). The
GPL'd one is still available if there are any devices that need it (make
universe passes with it, including kernels that use fdt, but there may be some
out-of-tree ones). WITH_GPL_DTC can be used to select the old one, for now.

Probably won't be MFC'd, but we'll remove the GPL'd version in head after the
new one has had a lot more testing and ship it in 10.0.


# 245757 21-Jan-2013 gjb

Chase r245756 of make.conf(5):

- If update method is SUP_UPDATE or CVS, warn that those
update methods are deprecated.

- While here, remove bogus NO_WWWUPDATE.

MFC after: 3 days
X-MFC-with: r245756


# 245754 21-Jan-2013 brooks

Always bootstrap nmtree if it is not available on the host. It is fairly
small and it is quite annoying to get all the way through buildworld
only to discover that you forgot the DB_FROM_SRC (or soon NO_ROOT)
option.


# 245622 18-Jan-2013 brooks

Remove a harmless (somewhat to my surprise) bogon that crept into r245440.


# 245565 17-Jan-2013 brooks

Rework the mtree portion of etc/Makefile's distrib-dirs target to run
mtree in a shell loop so there is only one mtree commandline. Move the
implementation of LOCAL_MTREE into etc/Makefile.

Sponsored by: DARPA, AFRL
Reviewed by: mtree :)


# 245563 17-Jan-2013 brooks

Correct the distrib-dirs target in the -DDB_FROM_SRC case.


# 245561 17-Jan-2013 brooks

Add a new LIBRARIES_ONLY make variable to disable the build and install
of files other than the actual libraries.

Use LIBRARIES_ONLY to supress the inclusion of files in the lib32
distribution that are duplicates of files in base.

Sponsored by: DARPA, AFRL
Reviewed by: emaste


# 245440 14-Jan-2013 brooks

Add an option DB_FROM_SRC to use src/etc's user/group databases when
installing. This allows things like running installworld for 10-CURRENT
on a 9.0-RELEASE system without adding extra users and groups to the
passwd and group files.

To prevent potentially risky uid/gid mismatches on systems with
non-standard local values, require that DESTDIR be set if DB_FROM_SRC is
set.

Sponsored by: DARPA, AFRL
Reviewed by: peter


# 245318 11-Jan-2013 brooks

Revert r245316. Systems with non-standard uids/gids are more prevalent
that I'd feared. Discussion is ongoing about the scope of a safer
solution.


# 245316 11-Jan-2013 brooks

Use the -N option to install and nmtree to eliminate the need for the
checks for missing users and groups.

Sponsored by: DARPA, AFRL


# 245309 11-Jan-2013 brooks

Use find -exec to install zoneinfo instead of requiring xargs to be an
install tool.

Suggested by: delphij


# 245271 10-Jan-2013 brooks

Add xargs to the set of install tools when zoneinfo is not disabled.
This fixes installworld which I had broken in r245265.

Reported by: Nikolai Lifanov <lifanov@mail.lifanov.com>


# 243798 02-Dec-2012 peter

Add auditdistd to the pre-install required uid check list.


# 243713 30-Nov-2012 sjg

The build-tools step during build32 also needs the -legacy magic.

Approved by: marcel (mentor)


# 243322 20-Nov-2012 marcel

Unbreak amd64 cross-build where amd64 is the target. While clang
may be installed as cc and we don't need to build gcc as a
cross-tools, we still build gcc and thus need cc_tools built
as a build tool. Not doing this results in building gengenrtl with
the target compiler while we need to run it on the build machine.


# 242874 10-Nov-2012 dim

Work around pc98 tinderbox failures in sys/boot/pc98, by making sure a
cross gcc gets built during the cross-tools stage.

MFC after: 1 week
X-MFC-With: 242706


# 241823 21-Oct-2012 marcel

Add ATF to the build. This is may be a bit rought around the egdes,
but committing it helps to get everyone on the same page and makes
sure we make progress.

Tinderbox breakages that are the result of this commit are entirely
the committer's fault -- in other words: buildworld testing on amd64
only.

Credits follow:

Submitted by: Garrett Cooper <yanegomi@gmail.com>
Sponsored by: Isilon Systems
Based on work by: keramida@
Thanks to: gnn@, mdf@, mlaier@, sjg@
Special thanks to: keramida@


# 241684 18-Oct-2012 brooks

Allow LOCAL_(DIRS,LIBS) to install files in directories not found in the
system mtree files via a LOCAL_MTREE variable which contains a list of
mtree files to be applyed along with the base mtree files to the tmp root
and DESTDIR.


# 241312 07-Oct-2012 marcel

Fix the showconfig target. bmake sends debug output to stderr.

Submitted by: Simon Garrety <sjg@juniper.net>


# 241311 07-Oct-2012 marcel

Fix 32-bit library builds after the removal of adding -E to make for AS,
CC, CXX and LD. This fix implements the intended as it should have been
implemented all along: by passing AS, CC, CXX and LD on the commandline
of the sub-make instead of in the environment of the sub-make.

Breakage pointed-out by: dim@


# 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>


# 240468 13-Sep-2012 brooks

Introduce a new make variable COMPILER_TYPE that specifies what
type of compiler is being used (currently clang or gcc). COMPILER_TYPE
is set in the new bsd.compiler.mk file based on the value of the CC
variable or, should it prove informative, by running ${CC} --version
and examining the output.

To avoid negative performance impacts in the default case and correct
value for COMPILER_TYPE type is determined and passed in the environment
of submake instances while building world.

Replace adhoc attempts at determining the compiler type by examining
CC or MK_CLANG_IS_CC with checks of COMPILER_TYPE. This eliminates
bootstrapping complications when first setting WITH_CLANG_IS_CC.

Sponsored by: DARPA, AFRL
Reviewed by: Yamaya Takashi <yamayan@kbh.biglobe.ne.jp>, imp, linimon
(with some modifications post review)
MFC after: 2 weeks


# 240403 12-Sep-2012 obrien

Not all Pmake derivatives silently handle empty shell output, so ensure there
is something for make(1) to consume. Bmake gives output such as:
"warning: Couldn't read shell's output for "/bin/sh -c true"
Note we parted from traditional Pmake behavior in r18864 / r18255.


# 240077 03-Sep-2012 gjb

Fix 'distributeworld' target when WITHOUT_GAMES is set.

Reviewed by: des
Approved by: des
MFC after: 3 days
X-MFC-To: 9-only


# 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>


# 238926 30-Jul-2012 mm

Partial MFV (illumos-gate 13753:2aba784c276b)
2762 zpool command should have better support for feature flags

References:
https://www.illumos.org/issues/2762

MFC after: 2 weeks


# 238051 03-Jul-2012 obrien

Add "hier" as an alternate spelling of "hierarchy" to match hier(9).


# 237142 15-Jun-2012 brooks

Minor wording change. The previous commit message should have included:

Sponsored by: DARPA, AFRL


# 237141 15-Jun-2012 brooks

MFP4: 212854, 212854

Add a LOCAL_LIB_DIRS variable to complement the existing LOCAL_DIRS
and LOCAL_TOOL_DIRS variables. Directories in LOCAL_LIB_DIRS are
built at the end of the _generic_libs target.

Reviewed by: imp (212854)


# 236528 03-Jun-2012 dim

During buildworld and buildkernel, define EARLY_BUILD in the earlier
stages (build-tools, cross-tools, etc) of the build, so we can detect in
bsd.*.mk whether to pass compiler-specific flags to ${CC}.

In particular, this commit will allow using WITH_CLANG_IS_CC when the
base compiler is still gcc, and when ${CC}, ${CXX} and ${CPP} are left
at their defaults. The early stages will then be built using gcc, and
no clang-specific flags will be passed to it. The later stages will be
built as usual.

The EARLY_BUILD define can also serve other uses, such as building the
world stage C++ executables with libc++ instead of libstdc++: during the
early build stages, we cannot assume libc++ is already available, so we
must still build with libstdc++ at that time.

MFC after: 1 week


# 235788 22-May-2012 des

Bump __FreeBSD_version for the byacc import, and update _bootstrap_tools.


# 235637 19-May-2012 marcel

Fix bootstrapping from FreeBSD 7.x: we also need to build ar.


# 235500 16-May-2012 imp

By request, add back support from 7.0 and newer, since the changes for
that are so minimal.


# 235224 10-May-2012 imp

Do a bit of house cleaning and remove the old, obsolete upgrade from
6.0 support and bump the minimum version to 8.0. These versions have
not been tested and are believed to be broken.


# 235122 07-May-2012 jlh

Introduce the ${SHLIB_LDSCRIPT} variable to have an ld(1) script
instead of a symlink for .so files.

Reviewed by: kib, kan (previous version), dim
Approved by: kib (mentor)
Silence from: -hackers@
MFC after: 1 week


# 234724 26-Apr-2012 imp

Fix ordering issue. 'make xdev' can fail with -jN because it tries to run the
xdev-install step while xdev-build is still running.

Submitted by: Ian Lepore


# 233645 29-Mar-2012 jmallett

o) Fix mips/mips -> mips for Makefile.inc1.
o) Rebuild src.conf.5.


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


# 233416 24-Mar-2012 gonzo

Build CTF tools as a part of toolchain for cross-compilation case


# 233337 23-Mar-2012 stas

- Do not build libcom_err and compile_et when kerberos is disabled. They
depends on several heimdal libraries and not used by anything but kerberos
tools.


# 233294 22-Mar-2012 stas

- Update FreeBSD Heimdal distribution to version 1.5.1. This also brings
several new kerberos related libraries and applications to FreeBSD:
o kgetcred(1) allows one to manually get a ticket for a particular service.
o kf(1) securily forwards ticket to another host through an authenticated
and encrypted stream.
o kcc(1) is an umbrella program around klist(1), kswitch(1), kgetcred(1)
and other user kerberos operations. klist and kswitch are just symlinks
to kcc(1) now.
o kswitch(1) allows you to easily switch between kerberos credentials if
you're running KCM.
o hxtool(1) is a certificate management tool to use with PKINIT.
o string2key(1) maps a password into key.
o kdigest(8) is a userland tool to access the KDC's digest interface.
o kimpersonate(8) creates a "fake" ticket for a service.

We also now install manpages for some lirbaries that were not installed
before, libheimntlm and libhx509.

- The new HEIMDAL version no longer supports Kerberos 4. All users are
recommended to switch to Kerberos 5.

- Weak ciphers are now disabled by default. To enable DES support (used
by telnet(8)), use "allow_weak_crypto" option in krb5.conf.

- libtelnet, pam_ksu and pam_krb5 are now compiled with error on warnings
disabled due to the function they use (krb5_get_err_text(3)) being
deprecated. I plan to work on this next.

- Heimdal's KDC now require sqlite to operate. We use the bundled version
and install it as libheimsqlite. If some other FreeBSD components will
require it in the future we can rename it to libbsdsqlite and use for these
components as well.

- This is not a latest Heimdal version, the new one was released while I was
working on the update. I will update it to 1.5.2 soon, as it fixes some
important bugs and security issues.


# 233098 17-Mar-2012 peter

Make sure libgcc_s is finished building in _startup_libs before
building libcxxrt with high -j levels. The workaround in
libc++/Makefile isn't necessary once that race is solved.

Reviewed by: theravin


# 232522 04-Mar-2012 dim

Fix a thinko in r232322, where gcc (and its tools) are not built during
the cross-tools stage, if CC=clang and WITH_CLANG_IS_CC is not set.

This causes no 'cc' to be installed in the temporary cross-tools tree,
making lint fall over later in the build, because it ignores ${CC} and
attempts to run 'cc' anyway.

To fix this, only skip building gcc during cross-tools, if WITHOUT_GCC
is set, or if WITH_CLANG_IS_CC is set.

Pointy hat to: dim
MFC after: 2 weeks


# 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


# 230786 30-Jan-2012 imp

Allow specification of build shell for the buildenv target.

Submitted by: ian lepore


# 230622 27-Jan-2012 dim

When the buildkernel stage 2.3 (build tools) runs, the PATH is still set
to the default from the top-level Makefile. Therefore, invocations of
lex and yacc (used during building of aicasm) will use the executables
in /usr/bin, not those optionally built during the previous buildworld
or kernel-toolchain. This makes kernel builds from older FreeBSD
releases more difficult than necessary.

Fix this by setting PATH to ${BPATH}:${PATH} in stage 2.3, so the
bootstrap tools directories are searched before the regular ones.

Silence from: svn-src-{all,head}
MFC after: 1 week


# 230127 15-Jan-2012 glebius

Restore functionality to pack several kernels into release. All
kernels specified by KERNCONF are built and packed into release.
The first one is packed into kernel.txz, all others to
kernel.CONFIG.txz.

The first one is installed on bootables in /boot.


# 229673 05-Jan-2012 adrian

Fix the broken non-cross compile build. Oops!

Another pointy hat to: adrian, for stirring up more trouble.


# 229659 05-Jan-2012 adrian

Allow extra directories to be added to the build-tools target.

Things such as "sh" require local tools to be built before
cross-compiling. This allows for extra software (that's
built via LOCAL_DIRS) to also have a build-tools target where
required.


# 228801 22-Dec-2011 dim

Remove -mfancy-math from LIB32CPUFLAGS for amd64. It has been default
for our gcc since more than three years (see r181534, which is also in
stable/9 and stable/8). This flag used to be for the benefit of the old
in-kernel math emulator, which was removed more than eight years ago.

Pointed out by: arundel
MFC after: 1 week


# 228158 30-Nov-2011 fjoe

- CTF knob is now implemented using common scheme: MK_CTF=yes/no is
defined based on WITH/WITHOUT_CTF settings, default is WITHOUT_CTF,
NO_CTF overrides WITH_CTF (used by Makefile.inc1)
- CTFCONVERT_CMD/NORMAL_CTFCONVERT are now defined to empty string
if make(1) can handle empty commands


# 228143 29-Nov-2011 fjoe

Turn off profiled libs build by default.
Can be enabled back using WITH_PROFILE=yes in /etc/src.conf


# 227987 26-Nov-2011 dim

Fix breakage after r227983; lib/libcxxrt still got built, because it was
not disabled in the usual way (by adding it to __DEFAULT_NO_OPTIONS in
share/mk/bsd.own.mk), and because the test for MK_LIBCPLUSPLUS in
Makefile.inc1 was incorrect.

Pointy hat to: dim


# 227985 25-Nov-2011 gonzo

Provide proper error message when trying to build xdev, xdev-build or
xdev-install targets without either XDEV or XDEV_ARCH defined.


# 227983 25-Nov-2011 theraven

Import libc++ / libcxxrt into base. Not build by default yet (use
MK_LIBCPLUSPLUS=yes to enable). This is a work-in-progress. It works for
me, but is not guaranteed to work for anyone else and may eat your dog.

To build C++ using libc++, add -stdlib=libc++ to your CXX and LD flags.

Bug reports welcome, bug fixes even more welcome...

Approved by: dim (mentor)


# 227933 24-Nov-2011 des

Revert r227841 and part of r227798. We still build libpam in two passes,
but we use STATIC_CFLAGS instead of our own private .c.o rule.

MFC after: 3 weeks


# 227841 22-Nov-2011 des

Remove libpam from _prebuild_libs. This should unbreak the -jX build.

MFC after: 3 weeks


# 227798 21-Nov-2011 des

Simplify the libpam build by removing the shared modules' dependency
on the shared library. The modules are loaded by the library, so we
know it'll be there when we need it.

MFC after: 3 weeks


# 227739 19-Nov-2011 andreast

Rename the linker emulation name for powerpc and powerc64. This is needed that
we can also use the upstream binutils linker where we have to have a unique
name for the FreeBSD emulation.


# 227427 10-Nov-2011 dim

Revert r227403 for now. Since the cross-tools stage purposefully
doesn't have ${WORLDTMP}/usr/bin in its PATH, if you build world with
CC=clang, tblgen tools from /usr/bin will be used instead of the ones
built under ${WORLDTMP}. This can lead to various errors, especially if
you upgrade from an older clang.

Note that building world with gcc would not experience these problems,
because it only uses the tblgen tools in the world stage, where PATH
does contain ${WORLDTMP}/usr/bin.

Pointy hat to: dim


# 227403 09-Nov-2011 dim

Move building of clang's tblgen tools (and required libraries) from the
bootstrap-tools stage to the cross-tools stage. These tools are only
needed for generating llvm/clang include files, and are not necessary
for bootstrapping the build itself.

This shaves off some build time, because the required libraries are now
just built twice (during the cross-tools and world stages), instead of
three times.

Also, if you build world using WITHOUT_CLANG= in src.conf(5), no llvm or
clang code will be compiled at all anymore.

MFC after: 1 week


# 227120 05-Nov-2011 dim

Make it possible to set CC and CXX (and optionally, AS and LD) in
make.conf(5), while allowing the build32 stage on 64-bit architectures
to still override them, so that stage can successfully build 32-bit
compatibility libraries.

Explanation:
1) The build32 stage sets environment variables CC, CXX, AS and LD for
its sub-make, to add 32-bit specific flags (-m32 and such).
2) The sub-make reads sys.mk, encounters CC?= and CXX?= assignments, so
does not alter them.
3) After some other stuff, sys.mk reads /etc/make.conf. When you have
"CC=xxx" and "CXX=yyy" statements in there, they will *override* the
build32-supplied CC/CXX values, nullifying the 32-bit specific flags.
4) Thus all objects get built as 64-bit anyway, and since LD is usually
not set in make.conf, it still has the 32-bit flags!
5) Now, whenever something is linked, you will get a "ld: Relocatable
linking with relocations from format elf64-x86-64-freebsd (foo.o) to
format elf32-i386-freebsd (bar.o) is not supported" error.

Fix this by adding "-ECC -ECXX -EAS -ELD" to the build32 sub-make
invocation, which forces those environment variables to always override
any assignment in makefiles. Thus making it possible to simply set:

CC=my-cc
CXX=my-c++

in your make.conf, or specify a path, even:

CC=/usr/local/bin/other-cc
CXX=/usr/local/bin/other-c++

Note this was never a problem on i386, since it has no build32 stage.

Silence from: current@
MFC after: 1 week


# 226785 26-Oct-2011 ed

Attempt to fix build logic for gensnmptree.

There are two problems with the existing logic. It builds gensnmptree
on <700018, even if WITHOUT_BSNMP is set, but more importantly, we must
not forget to build gensnmptree on systems that have originally been
built without. This causes a buildworld on those systems to fail.

MFC after: 1 week


# 226633 22-Oct-2011 dim

Upgrade our copy of llvm/clang to r142614, from upstream's release_30
branch. This brings us very close to the 3.0 release, which is expected
in a week or two.

MFC after: 1 week


# 225937 03-Oct-2011 nwhitehorn

Farewall, sysinstall! You served us well for many years, but 10.0 is one
digit beyond your time.

Various sysinstall dependencies (e.g. libftpio, libdisk, libodialog, etc.)
will be cleaned up in coming days. Some will take longer than others due to
a few other consumers (tzsetup and sade).


# 225778 27-Sep-2011 stas

- Add missing interdependencies to kerberos libraries. Some of the
kerberos libraries were not linked properly (missing dependencies),
which causes 3rd party applications linking to fail when --as-needed
ld flag is used. I also added the --no-undefined ld(1) flag to make
sure that there're no missing dependencies.

MFC after: 3 days


# 224776 11-Aug-2011 ru

- Merged awk upstream that includes a fix for a bug exposed by kmod_syms.mk.
- Provide a build aid for those who already have a buggy awk(1) installed.

Approved by: re (kib)


# 223148 16-Jun-2011 ru

It's a bit odd, but "make update" in src/ can also update the ports/,
doc/, and now www/ trees, but only using the "cvsup" transport.

When "make update" is run using a tree's makefile, it can also use
"cvs" (except for www/) and "svn" (only src/).

Clean up documentation and code regarding "make update":

- Increase oddness by adding support for WWWSUPFILE and NO_WWWUPDATE to
Makefile.inc1 (analogous to PORTSSUPFILE/NO_PORTSUPDATE and
DOCSUPFILE/NO_DOCUPDATE; WWWSUPFILE already supported by www/Makefile).

- Document all trees that support CVS_UPDATE.

- Document all trees that support SUP_UPDATE.

- Document SVN_UPDATE.

- Document NO_WWWUPDATE.

- make.conf(5) mistakenly said that *SUPFILE* had defaults.

- Add an example entry for WWWSUPFILE.


# 222090 19-May-2011 imp

Implement WITH{,OUT}_{GCC,BINUTILS} to provide finer-grained control
over building gcc and binutils. They default to true, unless
MK_TOOLCHAIN is no.

Reviewed by: ru@


# 222072 18-May-2011 imp

Clean up a loose end from the conversion from gnu ar/ranlib to the BSD
one. Without this, we don't have ar or randlib in the tool path,
leading to much pain for some users. This pain is exposed by the
external toolchain enhancements that I'm working on.

Submitted by: John Hein (ages ago, and dropped on the floor by me: sorry)


# 222035 17-May-2011 flz

Backout libinstall.a -> libpkg commit.

Discussed with: erwin, brooks, bapt


# 221869 14-May-2011 attilio

Disconnect sun4v architecture from the three.

Some files keep the SUN4V tags as a code reference, for the future,
if any rewamped sun4v support wants to be added again.

Reviewed by: marius
Tested by: sbruno
Approved by: re


# 221783 11-May-2011 obrien

+ DTrace as a bootstrap tool is only needed on certain older systems.
+ Be more consistent between BMAKE and TMAKE.
+ Add NO_CTF to crosstools as is done for bootstrap and build tools.

Reviewed by: marcel


# 221469 04-May-2011 obrien

Correct the kernel config name printed out during install.

PR: 156579
Submitted by: dhw


# 220954 22-Apr-2011 obrien

Note which of the built kernels is being installed.

PR: 156579
Submitted by: dhw


# 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@


# 220401 06-Apr-2011 uqs

Complete WITHOUT_CXX support. It implies WITHOUT_GROFF and
WITHOUT_CLANG.

Don't build clang bootstrap/build-tools depending on this flag. We also
keep gperf, devd and libstdc++ around to prevent foot-shooting and to
make this a two-way street.


# 220359 05-Apr-2011 imp

Make clang default on x86 and powerpc, but not on other architectures.
Make fdt default on arm and powerpc.

This now includes cross compiled targets, where before we tried to
make it host-based.

Also, move the lists of default yes and no options to a variable.

In general, only build tools should get this treatment in bsd.own.mk.
Also, the use of TARGET* in the bsd.*mk files is discouraged, but
necessary here due to the ordering of things in buildworld. We make
the native case work by testing MACHINE_ARCH after TARGET_ARCH.


# 220255 01-Apr-2011 uqs

Fix the delete-old/check-old targets to work with arbitrarily long
OLD_FILES/OLD_DIRS/OLD_LIBS lists.

If you specify enough WITHOUT_FOO flags, the argument list passed to the
shell will be too long. Using .for/.endfor make(1) "loop" will make the
parser of the Makefile explode. Hack around this with good old pipes.

No objections: netchild
Reported by: b.f.


# 219820 21-Mar-2011 jeff

- Merge in OFED 1.5.3 from projects/ofed/head


# 219177 02-Mar-2011 nwhitehorn

Improve the distributeworld target in Makefile.inc1 and update the release
infrastructure to use it. make distributeworld can now be used without
preparing its environment first and installs games into its distribution
using the regular make distribute logic instead of post-processing with
a script.

Also add two new targets, packageworld and packagekernel, that tar up the
results of distributeworld and distributekernel (also new), respectively.


# 219136 01-Mar-2011 jhb

Use a suitable DIRPRFX for each invocation of make in the build32 and
install32 targets so that the full path to each program or library is
displayed in the make output.

MFC after: 1 week


# 219090 27-Feb-2011 pjd

Commit two more files missed in r219089.

MFC after: 1 month


# 219019 24-Feb-2011 gabor

Add the BSD-licensed Citrus iconv to the base system with default off
setting. It can be built by setting the WITH_ICONV knob. While this
knob is unset, the library part, the binaries, the header file and
the metadata files will not be built or installed so it makes no impact
on the system if left turned off.

This work is based on the iconv implementation in NetBSD but a great
number of improvements and feature additions have been included:

- Some utilities have been added. There is a conversion table generator,
which can compare conversion tables to reference data generated by
GNU libiconv. This helps ensuring conversion compatibility.
- UTF-16 surrogate support and some endianness issues have been fixed.
- The rather chaotic Makefiles to build metadata have been refactored
and cleaned up, now it is easy to read and it is also easier to add
support for new encodings.
- A bunch of new encodings and encoding aliases have been added.
- Support for 1->2, 1->3 and 1->4 mappings, which is needed for
transliterating with flying accents as GNU does, like "u.
- Lots of warnings have been fixed, the major part of the code is
now WARNS=6 clean.
- New section 1 and section 5 manual pages have been added.
- Some GNU-specific calls have been implemented:
iconvlist(), iconvctl(), iconv_canonicalize(), iconv_open_into()
- Support for GNU's //IGNORE suffix has been added.
- The "-" argument for stdin is now recognized in iconv(1) as per POSIX.
- The Big5 conversion module has been fixed.
- The iconv.h header files is supposed to be compatible with the
GNU version, i.e. sources should build with base iconv.h and
GNU libiconv. It also includes a macro magic to deal with the
char ** and const char ** incompatibility.
- GNU compatibility: "" or "char" means the current local
encoding in use
- Various cleanups and style(9) fixes.

Approved by: delphij (mentor)
Obtained from: The NetBSD Project
Sponsored by: Google Summer of Code 2009


# 218941 22-Feb-2011 uqs

Flesh out WITHOUT_GROFF support to DTRT.

A full featured groff is required during buildworld, so build it always
and don't rely on it being present on the host system.

vgrind(1) is tightly coupled to a roff processor and will not be
built/installed when groff is disabled. Also much of the roff'ed
documentation under share/doc will not be built/installed when
WITHOUT_GROFF is defined.

Reviewed by: ru (partial)


# 218936 22-Feb-2011 imp

Back out 218933 and 281934. The easy cases still worked, but some
hard cases broke in worse ways than the status quo. Back them out
until that can be resolved.


# 218934 22-Feb-2011 imp

Select building CLANG based on ${TARGET_ARCH} and existence of
WITH{,OUT}_CLANG. We default to yes on some archs, no on others,
unless WITHOUT_CLANG or WITH_CLANG is defined respectively.


# 218893 20-Feb-2011 dim

Upgrade our copy of llvm/clang to r126079, from upstream's trunk.

This contains many improvements, primarily better C++ support, an
integrated assembler for x86 and support for -pg.


# 218534 11-Feb-2011 imp

Hmmm, specifying TARGET and TARGET_ARCH in the environment doesn't
seem to work when building xdev anymore (most likely my changes lately
moving the TARGET guessing stuff to Makefile from Makefile.inc1, but I
really don't grok why). Fix make xdev by putting them on the command
line. This will work either way while I try to figure it out.


# 218533 11-Feb-2011 imp

CPUTYPE is now a required define for calling Makefile.inc1 diretly, so
make sure we define it for the xdev stuff.

Move xdev stuff to be last again in this file.

# xdev-build works now, but xdev-install appears to be broken though.


# 218526 10-Feb-2011 imp

You are now *REQUIRED* to pass both TARGET and TARGET_ARCH to any
invocations of Makefile.inc1 (since that's supposed to be an internal
interface for world and related targets). Document this with a .error
message. For a transition period, support passing in just TARGET, but
give a .warning for that case: I plan on removing it in 9.0...


# 218130 31-Jan-2011 imp

Move the architecture guessing from Makefile.inc1 to Makefile. We
need to do this because variables specified on the command line
override those specified in the Makefile. This is why we also moved
from TARGET to _TARGET in Makefile, and then set TARGET on the command
line when we fork a submake with Makefile.inc1.

This makes mips/mips work again, even without the workaround committed to
lib/libc/Makefile.


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


# 215455 18-Nov-2010 markm

Do not lint code beyond necessity (with apologies to Wiliam of Ockham).

Don't lint externally maintained CDDL code, or relint the 32-bit libraries
in amd64 mode.


# 215279 14-Nov-2010 imp

add / to the translation of TARGET_ARCH to TARGET


# 215257 13-Nov-2010 imp

The fixes for mips/mips arm/arm compat hacks broke if TARGET or
TARGET_ARCH wasn't defined. Fix it for that case.

Submitted by: Garrett Cooper


# 215252 13-Nov-2010 imp

Add legacy names for mips:mips and arm with TARGET_BIG_ENDIAN, for the moment.


# 215127 11-Nov-2010 ed

Replace libgcc.a by libcompiler_rt.a.

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

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

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


# 215065 09-Nov-2010 imp

Merge from tbemd:
o TARGET=mips --> little endian 32-bit mips build
o mipsel and mipseb TARGET_ARCH are both mips TARGETs
o Add some more architecture combinations


# 212333 08-Sep-2010 nwhitehorn

Check TARGET_ARCH as well as TARGET to determine if we are doing a cross
build. This is necessary to be able to cross-build 32-bit PowerPC from
a 64-bit PowerPC host.

Reviewed by: imp


# 211934 28-Aug-2010 nwhitehorn

Repair some build breakage introduced in r211725 and garbage collect some
code made obsolete in the same commit.


# 211758 24-Aug-2010 imp

The order was correct before. I'd talked to Nathan about this before,
so this must have been mismerged into tbemd before I merged it back to
head. This unbreaks this on powerpc64

Submitted by: nathanw@


# 211725 23-Aug-2010 imp

MFtbemd:

Prefer MACHNE_CPUARCH to MACHINE_ARCH in most contexts where you want
to test of all the CPUs of a given family conform.


# 211673 22-Aug-2010 imp

Minor tweak from tbemd


# 211577 21-Aug-2010 rpaulo

Don't link drti.o with libelf_pic.a. This means that all software with
userland SDT probes must be linked with libelf explicitly.

Requested by: kib
Sponsored by: The FreeBSD Foundation


# 211572 21-Aug-2010 rpaulo

Add clang to the cross-tools build stage.

Submitted by: Dimitry Andric <dimitry at andric.com>


# 211560 21-Aug-2010 rpaulo

Add libelf to the prebuild libs.

This is needed for the DTrace instrumentation object.

Sponsored by: The FreeBSD Foundation


# 211450 18-Aug-2010 des

Revert r211436; it was a good idea, but not fully thought out.


# 211436 17-Aug-2010 des

Split kernel stage 3.2 (build everything) into 3.2 (build the kernel)
and 3.3 (build the modules). IMHO, this makes it a little easier to
track the progress of a kernel build using whereintheworld et al.

MFC after: 3 weeks


# 210116 15-Jul-2010 raj

Relax FDT_DTS_FILE validation (and unbreak world build).

Pointed out by: kib


# 210112 15-Jul-2010 raj

Fix FDT_DTS_FILE parsing to properly retrieve its value. This unbreaks the
'builddtb' target.

Make the processing more robust against non-existent kernel config files
(pointed out by imp@).


# 210024 13-Jul-2010 nwhitehorn

Connect powerpc64 to the build. It is not presently part of make universe,
which will be added soon.

Reviewed by: imp


# 209511 24-Jun-2010 imp

Merge from tbemd:

use MACHINE_CPUARCH instead of MACHINE_CPU since the sources for the
CSU is based on MACHINE_CPUARCH

Reviewed by: arch@ (twice)


# 209510 24-Jun-2010 imp

Merge from tbemd:

change the name of the object tree from ${TARGET} to
${TARGET}.${TARGET_ARCH} so we can do both big and little endian
builds in the same tree.

Reviewed by: arch@ (twice)


# 209509 24-Jun-2010 imp

Merge from TBEMD:

Rather than having arch specific code in Makefile.inc1, generalize so
that we can control the settings of different options on a per
architecutre basis.

Reviewed by: arch@ (twice)


# 209240 16-Jun-2010 raj

Use awk alone for extracting FDT_DTS_FILE instead of grep/cut, which is
simpler and more robust.

Submitted by: Andrzej Tobola


# 209128 13-Jun-2010 raj

Connect FDT infrastructure to the build system.

Reviewed by: imp
Sponsored by: The FreeBSD Foundation


# 208964 09-Jun-2010 rdivacky

Hook clang into the build on i386/amd64/powerpc.

Approved by: ed (mentor)


# 208363 20-May-2010 jkim

Revert r208353. It did not work as I expected because WITHOUT_MAN is set
for bootstrap-tools target and WITHOUT_MAN_UTILS was implied by default.

Pointy hat: jkim


# 208353 20-May-2010 jkim

We do not have to build makewhatis as a bootstrap tool when it is disabled
by WITHOUT_MAN_UTILS.


# 208333 20-May-2010 jkim

Revert r208324. We still need it for installworld as $PATH is overriden.


# 208324 19-May-2010 jkim

Remove makewhatis(1) from bootstrap tools. We no longer support source
upgrades from versions prior to 6.0 on head.


# 207849 10-May-2010 mm

Enable liblzma support in libarchive
Adjust dependencies for programs using libarchive
Add xz and linkage against liblzma to rescue system

Approved by: kientzle, delphij (mentor)
MFC after: 2 weeks


# 207113 23-Apr-2010 flz

- Take libinstall.a out of pkg_install and make it a proper shared library.
- Rework the wrapper support to check libpkg version as well as pkg_install
version.
- Add libfetch to _prebuild_libs.
- There are no new features introduced.

Notes: the API is not stable, so basically, do not use libpkg in your
projects for now. Also there's no manpage for libpkg yet, because the API
will change drastically. I repeat, do not use libpkg for now.


# 207058 22-Apr-2010 netchild

Remove explicit setting of NO_CTF in WMAKEENV and in the make call for
the buildkernel. This way makeoptions WITH_CTF=yes not only works when
compiling the tradtitional way, but also when using buildkernel. This
does not enable the CTF part of the world, it still defaults to without
CTF info.

The cross/build-tools/bootstrap targets are not affected by this, they
still have and should keep the explicit NO_CTF.

Notified by: np


# 206618 14-Apr-2010 imp

Add note about TARGET_ARCH


# 205622 24-Mar-2010 delphij

Expose MACHINE_CPU while building lib32 target.


# 204833 07-Mar-2010 antoine

Remove old documents when they are not compressed.
(NO_INFOCOMPRESS, NO_DOCCOMPRESS or NO_MANCOMPRESS)

MFC after: 1 month


# 203016 26-Jan-2010 ru

Regen the list of prebuild libraries using tools/make_libdeps.sh.


# 202896 23-Jan-2010 antoine

Unbreak world:
- WITHOUT_OPENSSH (and WITH_KERBEROS)
- WITHOUT_KERBEROS and WITH_GSSAPI

PR: 137483
Submitted by: bf
MFC after: 2 weeks

Note: this breaks harder world WITHOUT_GSSAPI (and WITH_KERBEROS), but well


# 202755 21-Jan-2010 ed

Remove libulog from the bootstrap again.

libulog now only provides functions that are used by various packages
from the ports tree, namely the libutempter ones. There is no reason to
link it into the crunch/fixit binaries anymore.


# 202324 14-Jan-2010 jilles

In 'make delete-old', use 'exec' to redirect an fd persistently.

That is, write 'exec 3<&0' instead of '3<&0'. Due to an sh(1) bug fixed in
r199953, the latter also persisted, provided that fd 3 was not open before.
With newer sh or fd 3 open, it would not delete orphaned catpages.

MFC after: 2 weeks


# 201300 30-Dec-2009 ed

Disable K&R style function definitions for WARNS=6.

Unfortunately there are two slight problems with that:

- Yacc and lex might generate code that generates warnings because of
this. Require yacc and lex to be rebuilt during bootstrap. I'm not
incrementing __FreeBSD_version here, because I assume someone else
will do this eventually.

- When running `make buildkernel', it uses share/mk from the source
treeo to build aicasm. Because aicasm also depends on lex, this would
break. Lower WARNS to 5 for now. We should just increment it to 6
again somewhere in the very far future.


# 200596 16-Dec-2009 imp

Add NO_KERNELOBJ flag, similar to NO_KERNEL{CONFIG,DEPEND,CLEAN},
which disables doing a make obj. Use it when you know it will work
only. KERNFAST now implies NO_KERNELOBJ, since you don't need to keep
doing obj when doing incremental kernel builds.


# 200413 11-Dec-2009 ed

Convert pam_lastlog(8) to libulog.

The information used by the "Last login:"-line is obtained by using
ulog_setutxfile(3) to switch to the lastlog database. Login and logout
are performed using the utility functions ulog_login(3) and
ulog_logout(3).

This also means we must build libulog during bootstrap.

Approved by: des


# 198741 01-Nov-2009 rdivacky

Replace -iprefix with -isystem. We only need alternative header
files search path and thus -isystem is sufficient. -iprefix is
meant to do something entirely different.

Approved by: ed (mentor)
OKed by: ru, kan
Tested by: make universe


# 198535 28-Oct-2009 edwin

Now that the zoneinfo data is automatically updated when a new world
is installed, we should at least have the tzsetup tool available!

Suggested by: Andriy Gapon <avg@freebsd.org>
Noticed by: Ben Kaduk <minimarmot@gmail.com>
MFC after: 1 week


# 198347 21-Oct-2009 ru

Move sed(1) from cross-tools to bootstrap-tools.


# 198020 13-Oct-2009 bland

Chase dependency changes in libgssapi_krb5 module introruced by
revision r197995.


# 197056 10-Sep-2009 des

Fix comment about KERNFAST.


# 195697 14-Jul-2009 kan

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

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

Reviewed by: kib
Approved by: re (kib)


# 195152 28-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)


# 194194 14-Jun-2009 markm

Allow "make update" work with SVN, if you take the time to set up your
/etc/make.conf properly.

Only one SCM?
I do not think this is right.
Now I have fixed it.


# 190706 04-Apr-2009 imp

Revert c190007 at the request of Ruslan. It was not correct because
ar had been moved from cross tools to bootstrap tools when bsd ar was
introduced.

Submitted by: ru@


# 190007 18-Mar-2009 imp

Add usr.bin/ar to the list of cross tools. Before, when we had gnu
ar, it was built in the gnu/usr.bin/binutils tree. Now it isn't.

Submitted by: John Hein


# 189865 15-Mar-2009 imp

Restore missing OSREL definition that accidetnally dropped from an
earlier version of this patch.


# 189850 15-Mar-2009 gabor

- Create the buildworld object directories with mtree instead of various
mkdir calls
- Remove the ugly workaroung from libc NLS, which was to create some of
these directories


# 189765 13-Mar-2009 gabor

- Reenable Native Language Support in libc. This feature was disabled due
to possible breakages in the catalog handling code. Since then, that
code has been replaced by the secure code from NetBSD but NLS in libc
remained turned off. Tests have shown that the feature is stable and
working so we can now turn it on again.

- Add several new catalog files:
- ca_ES.ISO8859-1
- de_DE.ISO8859-1
- el_GR.ISO8859-7 (by manolis@ and keramida@)
- es_ES.ISO8859-1 (kern/123179, by carvay@)
- fi_FI.ISO8859-1
- fr_FR.ISO8859-1 (kern/78756, by thierry@)
- hu_HU.ISO8859-2 (by gabor@)
- it_IT.ISO8859-15
- nl_NL.ISO8859-1 (corrections by rene@)
- no_NO.ISO8859-1
- mn_MN.UTF-8 (by ganbold@)
- sk_SK.ISO8859-2
- sv_SE.ISO8859-1
(The catalogs without explicit source has been obtained from NetBSD.)

Approved by: attilio


# 189764 13-Mar-2009 ru

Don't put "install-info" to the list of install-tools if we're
installing with -DWITHOUT_INFO, otherwise one can experience a
failure trying to installworld on a system that is built with
-DWITHOUT_INFO (i.e., without /usr/bin/install-info).

Reported by: bland
MFC after: 3 days


# 189760 13-Mar-2009 imp

Implement the xdev target. When you define XDEV=arch XDEV_ARCH=arch,
you can build the cross development tools and install them as
$XDEV-freebsd-xxx for each tool. This allows one to use autoconf to
find the tools for cross building scenarios.


# 188895 21-Feb-2009 ru

Fix build when WITH_SSP is set explicitly.

Submitted by: Jeremie Le Hen


# 187636 23-Jan-2009 imp

Implement an idea from Sam Leffler:
make KERNFAST=blah buildkernel
is now a short cut for
make KERNCONF=blah -DKERNFAST buildkernel

This change works for all kernel config files not named "1". I did
that to make sure that
make -DKERNFAST buildkernel
remains the same as
make -DKERNFAST KERNCONF=GENERIC buildkernel
rather than trying to build and configure "1". I've never seen a
kernel config file named "1," so I think this is a good compromise.


# 187273 15-Jan-2009 imp

Add KERNFAST define. When defined, it skips all the config, depends
and clean steps. KERNFAST was selected to complement KERNCONF which
is typically used in these scenarios (especially with cross building).

Reviewed by: arch@


# 184860 12-Nov-2008 obrien

Add the kerberos5 libs to the install32 target.
(we've been building the all along, but never installing them)


# 184206 23-Oct-2008 des

Back out testing aid that was inadvertantly committed as part of r184205.

Noticed by: rdivacky


# 184205 23-Oct-2008 des

Retire the MALLOC and FREE macros. They are an abomination unto style(9).

MFC after: 3 months


# 183193 19-Sep-2008 obrien

Rescue is "not yet" for MIPS.


# 181871 19-Aug-2008 jhb

If a CPUTYPE isn't specified, then don't use -march=k8 when compiling
32-bit compat libs on amd64 since -march=k8 may generate instructions
that are not implemented on Intel EM64T processors. Instead, use
a simpler set of default flags that should work on all amd64-capable
CPUs.

PR: amd64/113111
Submitted by: NIIMI Satoshi sa2c of sa2c.net
MFC after: 1 week


# 181162 02-Aug-2008 jhb

Various style fixes in the build32 rules.

Submitted by: bde (mostly)


# 181136 01-Aug-2008 jhb

Tweak the support for using ldd on 32-bit objects a bit further.
Specifically, build a 32-bit /usr/bin/ldd32 on amd64 which handles 32-bit
objects. Since it is a 32-bit binary, it can fork a child process which
can dlopen() a 32-bit shared library. The current 32-bit support in ldd
can't do this because it does the dlopen() from a 64-bit process. In order
to preserve an intuitive interface for users, the ldd binary automatically
execs /usr/bin/ldd32 for 32-bit objects. The end result is that ldd on
amd64 now transparently handles 32-bit shared libraries in addition to
32-bit binaries.

Submitted by: ps (indirectly)


# 180012 25-Jun-2008 ru

Enable GCC stack protection (aka Propolice) for userland:
- It is opt-out for now so as to give it maximum testing, but it may be
turned opt-in for stable branches depending on the consensus. You
can turn it off with WITHOUT_SSP.
- WITHOUT_SSP was previously used to disable the build of GNU libssp.
It is harmless to steal the knob as SSP symbols have been provided
by libc for a long time, GNU libssp should not have been much used.
- SSP is disabled in a few corners such as system bootstrap programs
(sys/boot), process bootstrap code (rtld, csu) and SSP symbols themselves.
- It should be safe to use -fstack-protector-all to build world, however
libc will be automatically downgraded to -fstack-protector because it
breaks rtld otherwise.
- This option is unavailable on ia64.

Enable GCC stack protection (aka Propolice) for kernel:
- It is opt-out for now so as to give it maximum testing.
- Do not compile your kernel with -fstack-protector-all, it won't work.

Submitted by: Jeremie Le Hen <jeremie@le-hen.org>


# 179858 18-Jun-2008 obrien

Add MIPS to the list of known arches.


# 179233 23-May-2008 jb

Add the DTrace build tools to the list of tools and pass NO_CTF to all
the stages of the build which don't require CTF conversion.


# 178828 07-May-2008 dfr

Fix conflicts after heimdal-1.1 import and add build infrastructure. Import
all non-style changes made by heimdal to our own libgssapi.


# 178216 15-Apr-2008 ru

Bootstrap the build of btxld.


# 177714 29-Mar-2008 ru

Remove options MK_LIBKSE and DEFAULT_THREAD_LIB now that we no longer
build libkse. This should fix WITHOUT_LIBTHR builds as a side effect.


# 176737 02-Mar-2008 ru

Set AR=gnu-ar and RANLIB=gnu-ranlib on systems where we are forced
to use GNU tools. Remove the _WITH_GNUAR knob.

Prodded by: obrien


# 176557 25-Feb-2008 ru

Sort.

Prodded by: obrien


# 176556 25-Feb-2008 ru

Make again BSD ar(1) the default system ar(1), now properly handling
source upgrades by falling back to GNU ar(1) as necessary. Option
WITH_BSDAR is gone. Option _WITH_GNUAR to aid in upgrades is *not*
supposed to be set by the user.

Stop bootstrapping BSD ar(1) on the next __FreeBSD_version bump, as
there are no known bugs in it. Bump __FreeBSD_version to anticipate
this and to flag the switch to BSD ar(1), should it be needed for
something.

Input from: obrien, des, kaiw


# 175991 05-Feb-2008 des

Satisfy a particularly obstinate nit-picker :)


# 175981 05-Feb-2008 des

Give usr.bin/kdump/kdump_subr.c the same treatment as usr.bin/kdump/ioctl.c
and usr.bin/truss/ioctl.c. This is the correct way to address the problem
that arises when doing an incremental build after a header used by kdump
has been removed (cf. i4b disconnect a while ago)

Explained by: ru
MFC after: 2 weeks


# 175613 23-Jan-2008 ru

Support source upgrades from at least 6.0-RELEASE.

Reviewed by: imp, obrien


# 175583 22-Jan-2008 ache

Conditionally add mklocale to bootstrap-tools


# 175566 22-Jan-2008 ru

Cleanup after last commit (remove undefined variables).


# 175539 21-Jan-2008 obrien

Remove 5.x and 6.x cruft - source upgrades to RELENG_8 from versions prior
to RELENG_7 are not supported.


# 175382 16-Jan-2008 brueffer

Remove WITHOUT_FORTRAN from the XMAKE target, it doesn't exist anymore.

Reviewed by: imp, kan
Approved by: rwatson (mentor)
MFC after: 3 days


# 174255 04-Dec-2007 yar

- Explicitly verify if all needed libs were found by ldd(1). Do so
through scanning its output as ldd(1) returns a non-zero status only
for really abnormal conditions such as an improper file format.
Now cp(1) won't get bogus "not" and "found" arguments if a lib
is missing. [1]

- Don't guess if an element of a complex pipeline is assigned to the main
shell or a sub-shell. Namely use stdio, not vars, to pass lists out from
loops. If using vars, there's the risk that a loop will run in a sub-shell
and the list won't make it to the main shell. It appears that braces and
parens give only limited control over the issue while stdio always works
as intended. Apply this solution to both $progs and $libs for consistency,
although I've failed to go without it only in the $libs part.

Requested by: emaste [1]


# 173219 31-Oct-2007 yar

Decouple the install tools from the main system as much as possible.
I.e., not only copy them to a scratch dir, but also make them use saved
copies of libraries and locale files. That gives us several benefits:

1) ABI breakages should no longer affect installworld over the live system.

2) It becomes safe to run installworld while still running the old kernel.
However, it can be reasonable to save the old /rescue before that to be
able to run the old reboot(8), as the new binaries are rather likely to
fail with the old kernel. Anyhow, it's now possible to upgrade a system
in a single reboot _reliably_.

3) With a bit of hackery around rtld(8), it becomes possible to do destructive
cross-installs, e.g., i386->amd64 over the live system.

The only shared item left between the old and new systems is rtld(8),
which cannot be run from a saved copy easily because its full
pathname is stored in the respective field of each ELF executable.
(In theory, that field could be overridden, e.g., from the environment,
but this can lead to security issues.) That's why a destructive
cross-install isn't possible w/o hackery yet.

Fruitful ideas by: ru
Reviewed by: ru
Tested with: audit(4)


# 172663 15-Oct-2007 emaste

If a required install tool is missing, provide a more friendly error
message (instead of cp's usage info).


# 172500 09-Oct-2007 obrien

Tweak the handling of "WITHOUT_LIBPTHREAD". Also remove the accidental
treatment of 'LIBKSE' as an "old style" knob.

Submitted by: ru
Approved by: re(kensmith)


# 172491 09-Oct-2007 obrien

Repo copy libpthreads to libkse.
This introduces the WITHOUT_LIBKSE nob,
and changes WITHOUT_LIBPTHREADS to mean with neither threading libs.
Approved by: re(kensmith)


# 172405 01-Oct-2007 ru

Revise the list of directories we manually create under
${WORLDTMP} and ${LIB32TMP}; some of them are no longer
needed, and some were never needed.

Approved by: re (kensmith)


# 172403 01-Oct-2007 ru

Always install libpthread.* symlinks if at least one of
the threading libraries is built. This simplifies the
logic in makefiles that need to check if the pthreads
support is present. It also fixes a bug where we would
build a threading library that we shouldn't have built:
for example, building with WITHOUT_LIBTHR and the default
value of DEFAULT_THREADING_LIB (libthr) would mistakenly
build the libthr library, but not install it.

Approved by: re (kensmith)


# 171341 10-Jul-2007 delphij

Forced commit to say that the previous changeset was:

Submitted by: YAMAMOTO Shigeru <shigeru iij ad jp>
Approved by: re (rwatson, implicit)


# 171340 10-Jul-2007 delphij

Add sed(1) to cross tools. We do want newly built version during
buildworld.

Approved by: re (rwatson)


# 170005 26-May-2007 ru

lex(1) no longer installs headers into GCC-internal dirs
(since src/usr.bin/lex/Makefile,v 1.20).


# 169778 19-May-2007 des

Revision 1.576 removed too much. I didn't notice because my /usr is on
ZFS, which doesn't support flags...


# 169717 19-May-2007 kan

GCC will now properly link libc with all shared objects in order to record
their dependency on libc and its versioned symbols. For that to work,
libc needs to be built before any other shared library that might depend
on it. Add necessary glue to make that happen.


# 169621 16-May-2007 des

Don't use a subshell where it isn't needed.

Noticed by: John E Hein <jhein@timing.com>


# 169597 16-May-2007 des

Expose all of {check,delete}-old{,-dirs,-files,-libs}.

MFC after: 3 weeks


# 169596 16-May-2007 des

Remove stray comment which broke delete-old-dirs.


# 169595 16-May-2007 des

Partially revert the check-old / delete-old modifications to clarify the
logic.

Apply similar modifications to {check,delete}-old-dirs, which I had
overlooked.


# 169552 14-May-2007 des

Restore previous behaviour of aborting delete-old* if rm failed.

Pointed out by: netchild
MFC after: 3 weeks


# 169531 13-May-2007 des

Greatly speed up {check,delete}-old* by replacing make loops with sh loops.

MFC after: 3 weeks


# 169524 13-May-2007 deischen

Enable symbol versioning by default. Use WITHOUT_SYMVER to disable it.
Warning, after symbol versioning is enabled, going back is not easy
(use WITHOUT_SYMVER at your own risk).

Change the default thread library to libthr.

There most likely still needs to be a version bump for at least the
thread libraries. If necessary, this will happen later.


# 168818 17-Apr-2007 pjd

Link libzpool, ztest and zdb against libpthread.

Requested by: ru


# 168409 06-Apr-2007 pjd

Connect ZFS to the build.


# 167359 09-Mar-2007 rafan

Enable ncurses wide character support

Approved by: delphij (mentor)
Tested by: kris on pointyhat (early version), current@


# 167146 01-Mar-2007 ru

Bump the bootstrapping requirements for gensnmptree(1) and remove
a note in UPDATING that tried to work around the build breakage.

Tested by: jhb
OK'ed by: njl


# 167117 28-Feb-2007 ru

Resurrect one of the patches from attic and refine the
lib32 build somewhat. Specifically, instead of spamming
${CC} et al with -I${LIB32TMP}/usr/include which can be
harmful (as has been demonstrated by the ncursesw WIP),
use slightly different approach to achieve the same goal.
This also simplifies things a bit.

Prodded by: rafan


# 167067 27-Feb-2007 des

Clean the lib32 object directory with cleandir rather than rm -rf.

Discussed with: ru
MFC after: 2 weeks


# 166131 20-Jan-2007 rafan

Switch to new ncurses build glue

Approved by: delphij


# 164685 27-Nov-2006 ru

There was a timeframe where crunchgen(1) was broken; force
an upgrade during the build so those who are affected can
build world again.


# 164249 13-Nov-2006 ru

There doesn't seem to be a real reason for include/ to be installed
so early.


# 163446 16-Oct-2006 jb

Add sun4v to the TARGET_ARCH when just TARGET is set (like pc98 is done).

This is required for 'make universe'.


# 163148 09-Oct-2006 kmacy

buildworld fixes for sun4v
not sure why pmap.c is included as it is unchanged

Approved by: rwatson (mentor)
Reviewed by: jmg


# 163102 07-Oct-2006 ru

Shuffle _*_libs assigments (no functional changes).


# 163099 07-Oct-2006 ru

- Prebuild libgssapi only if building with Kerberos support.

- Remove libnetgraph from the list of prebuilt libraries as
no other library depends on it (snmp_netgraph.so does not
count as we don't build it in the "libraries" target).

- Restore libssh dependencies when compiling with Kerberos
support.


# 162146 08-Sep-2006 ru

Previous revision wasn't enough for "make TARGET=<machine> build*"
to work. Some build-tools that are part of cross-tools (cc_tools)
also need to know the proper values of TARGET_ARCH and TARGET, so
tell them.


# 162127 07-Sep-2006 ru

While experimenting with cross-building by specifying just TARGET,
I found one bug. Pass our idea of TARGET_ARCH and TARGET down to
XMAKE, the cross-tools make. Previously it worked because usually
TARGET_ARCH was specified on the initial make's command line.
This should also allow us to simplify the "universe" target, which
I'm currently testing.


# 162123 07-Sep-2006 ru

Added timestamping to buildworld, similar to buildkernel.


# 162113 07-Sep-2006 ru

- Rewrite logic to guess TARGET_ARCH/TARGET to be more readable,
but without changes in behavior.

- Add sanity checking for TARGET_ARCH/TARGET.


# 162104 07-Sep-2006 imp

make "make TARGET=foo" work correctly. Before, it would fail to set
TARGET_ARCH correctly. Now it does, even for pc98. We should suggest
TARGET=foo in preference to TARGET_ARCH because the former is
unambiguous and the latter isn't, so update the docs.

This means that a long standing gripe I've had with this comes to a
close. I can build pc98 w/o specify both things. make TARGET=arm
works (rather than trying to build a arm:amd64 image and dying badly
in the attempt).

If you specify only TARGET_ARCH, then you get the old behavior.

# we can likely simplify the UNIVERSE target now to use this, but I'm not
# up for breaking that tonight :-).

# We should consider adding some kind of sanity check for TARGET_ARCH
# and TARGET.


# 161580 24-Aug-2006 imp

Always make obj when building the libraries. This never hurts, and
helps some cross-architecture building tool installation patches that
I'm developing.


# 161526 22-Aug-2006 ru

Remove alpha left-overs.


# 161119 09-Aug-2006 netchild

Remove sade from build-tools, the tinderbox problem should be fixed now.


# 161110 09-Aug-2006 nyan

Add the sade to build-tools list. This fixes a tinderbox.


# 160923 02-Aug-2006 netchild

Fix doxygen target.

Submitted by: "Alexander Mogilny" <sg@astral.ntu-kpi.kiev.ua>
Pointy hat to: netchild


# 159353 06-Jun-2006 imp

Also need to quote values so they can be passed on correctly.


# 159349 06-Jun-2006 imp

Create a new target 'buildenvvars'. This target reports the build
environment for cross building (the same one you'd get interactively
in make buildenv). This cannot be a simple

make -f Makefile.inc1 -V WMAKEENV

because in PATH is not set correctly unless one takes a trip through
the Makefile/Makefile.inc1 indirection, the logic of which is too
large to reproduce outside of Makefiles.


# 158962 26-May-2006 netchild

Connect the kernel subsystem API documentation generation framework to
the build infrastructure: "make doxygen"

Changes to the man pages will be made when some defaults are revisited.

Requested by: gnn


# 158687 17-May-2006 phk

Send the pcvt(4) driver off to retirement.


# 157336 31-Mar-2006 ru

Sort bootstrap-tools entries.


# 157291 30-Mar-2006 ru

Rebuild gensnmptree(1) on 700014 systems too. While 700014 corresponds
to post January 26 systems where gensnmptree(1) code was already fixed,
there was a timeframe between February 14 and February 27 when
usr.sbin/bsnmpd/ including gensnmptree was disconnected from build, so
if you upgraded in this timeframe, you ended up with the 700014 system
but still with a buggy gensnmptree binary. This also means not being
able to buildworld now.

Reported by: jhb
Attention: harti, keramida


# 156905 20-Mar-2006 ru

Extend coverage of the MK_IPX build option to the following:

- <netipx> headers [1]
- IPX library (libipx)
- IPX support in ifconfig(8)
- IPXrouted(8)
- new MK_NCP option

New MK_NCP build option controls:

- <netncp> and <fs/nwfs> headers
- NCP library (libncp)
- ncplist(1) and ncplogin(1)
- mount_nwfs(8)
- ncp and nwfs kernel modules

User knobs: WITHOUT_IPX, WITHOUT_IPX_SUPPORT, WITHOUT_NCP.

[1] <netsmb/netbios.h> unconditionally uses <netipx> headers
so they are still installed. This needs to be dealt with.


# 156881 19-Mar-2006 mux

Change the default SUP command to use csup instead of CVSup for
"make update" when SUP_UPDATE is defined.


# 156854 18-Mar-2006 ru

Convert NO_PROFILE and NO_LIB32 to new style.


# 156840 18-Mar-2006 ru

Add the new "showconfig" target that displays build configuration.

Suggested by: phk


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


# 156764 16-Mar-2006 ru

When building for pc98, don't create stray objects in the
usr.sbin/pcvt/keycap source directory.

Found by: phk
MFC after: 3 days


# 156493 09-Mar-2006 keramida

After revision 1.4 of `src/usr.sbin/bsnmpd/bsnmpd/Makefile' the
gensnmptree utility is required at "make depend" time, because it
is used to generate `oid.h' for bsnmpd.

This means that all versions of HEAD before 2004/01/23 16:22:49 need
gensnmptree as a bootstrap util when it's not already installed as
part of the base system. The first __FreeBSD_version that we can
assume this can work is 700014 which happened after the gensnmptree
change (in -r 1.263 of `src/sys/sys/param.h', at 2006/02/17 14:14:15).

For __FreeBSD_version values before 700014 add gensnmptree to the
bootstrap tools, to allow upgrades from versions of FreeBSD before
that date.

Approved by: ru, harti


# 156060 27-Feb-2006 ru

Detect that the "audit" group is missing earlier during install.


# 155818 18-Feb-2006 netchild

A file can also be a link, so check not only for a file, but also for a link
in the delete-old and check-old targets.

We don't install a lib (libXY.so.Z) as a link, but an user may have created
something like this. This is dangerous if this link points to a different
version of the lib. So check for a link also in the *-lib targets (an
annoyed user which absolutely wants this redirection of a lib should use
libmap.conf instead of a link).

A directory can also be a link, but in this case just echo a message to
remove it by hand.


# 153975 02-Jan-2006 dfr

Revert the previous change - the lib32 build should work now.


# 153968 02-Jan-2006 dfr

Temporarily disable the kerberos5 lib32 build while I try to fix it
properly.


# 153838 29-Dec-2005 dfr

Add a new extensible GSS-API layer which can support GSS-API plugins,
similar the the Solaris implementation. Repackage the krb5 GSS mechanism
as a plugin library for the new implementation. This also includes a
comprehensive set of manpages for the GSS-API functions with text mostly
taken from the RFC.

Reviewed by: Love Hörnquist Åstrand <lha@it.su.se>, ru (build system), des (openssh parts)


# 153220 07-Dec-2005 obrien

Use cross-compile friendly spelling of CPUTYPE.

Submitted by: ru


# 153210 07-Dec-2005 ru

Style, no functional changes.


# 153206 07-Dec-2005 obrien

SSE2 comes thru the users choice of CPUTYPE.


# 153205 07-Dec-2005 obrien

Default to producing 'k8' COMPAT_32BIT bits, but allow override.


# 153181 06-Dec-2005 imp

Back out my sh -> ${SHELL} change, since it will be a few days before
I can fix it better.

Requested by: ru@


# 153041 03-Dec-2005 ambrisko

Switch BUILD_ARCH in Makefile to use uname -p suggested by ru.
Switch strncpy to strlcpy suggested by gad and issue found by pjd.
Add to uname(3) man page describing:
UNAME_s
UNAME_r
UNAME_v
UNAME_m
Add to getosreldate(3) man page describing:
OSVERSION

Submitted by: ru, pjd/gad
Reviewed by: ru (man pages)


# 153002 01-Dec-2005 ambrisko

Add support to easily build FreeBSD unpacked in a chroot of another
FreeBSD machine. To do this add the man 1 uname changes to __xuname.c
so we can override the settings it reports. Add OSVERSION override
to getosreldate. Finally which Makefile.inc1 to use uname -m instead
of sysctl -n hw.machine_arch to get the arch. type.

With these change you can put a complete FreeBSD OS image into a
chroot set:
UNAME_s=FreeBSD
UNAME_r=4.7-RELEASE
UNAME_v="FreeBSD $UNAME_r #1: Fri Jul 22 20:32:52 PDT 2005 fake@fake:/usr/obj/usr/src/sys/FAKE"
UNAME_m=i386
UNAME_p=i386
OSVERSION=470000
on an amd64 or i386 and it just work including building ports and using
pkg_add -r etc. The caveat for this example is that these patches
have to be applied to FreeBSD 4.7 and the uname(1) changes need to
be merged. This also addresses issue with libtool.

This is usefull for when a build machine has been trashed for an
old release and we want to do a build on a new machine that FreeBSD
4.7 won't run on ...


# 152986 01-Dec-2005 imp

In make buildenv, spell sh as ${SHELL}. In this case, we don't want
to hard code /bin/sh since we're forking it for the user to type
commands into. As such, ${SHELL} is the preferred thing users type
commands into.


# 152785 25-Nov-2005 ru

Revert revision 1.416 and don't create a hierarchy before installing
a kernel. It's slower and is generally only applicable to RELENG_4.


# 152693 22-Nov-2005 ru

Unbreak installworld.


# 152680 22-Nov-2005 ru

Get rid of SPECIAL_INSTALLCHECKS variable that isn't settable
by a user. Instead, add individual checks as dependencies to
the main "installcheck" target. Make sure that installkernel
etc. depend on it (including the UID/GID checks).


# 152679 22-Nov-2005 ru

Fold some common stuff into a macro ${KMAKE}.


# 152602 19-Nov-2005 ru

Add the NO_INCS knob to bsd.prog.mk and bsd.lib.mk to not include
bsd.incs.mk, and use it when installing 32-bit compat libraries
on amd64. This causes it to *not* overwrite native headers with
i386 versions, which was the case with <fenv.h> and <vgl.h>.

PR: amd64/83806
Prodded by: bde
MFC after: 1 week


# 152339 12-Nov-2005 ru

Speed up stale catpages hunting by not running sed(1) for every catpage.


# 152338 12-Nov-2005 ru

Don't check DESTDIR when making distributeworld; the latter expects
DISTDIR.

Reported by: nyan


# 152285 10-Nov-2005 ru

Add missing shared library interdependencies.


# 152156 07-Nov-2005 ru

Require DESTDIR to be set when installing for a different architecture.


# 152006 03-Nov-2005 ru

Serialize access to the info/dir file; needed for parallel installs.

Reported by: scottl

I'm not very fond of using the non-standard lockf(1) here, but I
have no better idea at the moment. NetBSD uses ln(1) to create a
lock file, but this approach can result in a deadlock if make is
interrupted, leaving an orphaned lock file.


# 151510 20-Oct-2005 ru

Force an upgrade to Groff 1.19.2.


# 149386 23-Aug-2005 brian

Fix a couple of typos


# 149319 20-Aug-2005 netchild

Fix the "unexpected operator" bug some people are seeing.

First noticed by: kris


# 148826 07-Aug-2005 netchild

Remove cat-pages without corresponding man-pages.


# 148766 05-Aug-2005 ru

- clean ${LIB32TMP} in _worldtmp
- clean ${OBJTREE}/lib32 in _cleanobj
- ensure that ${WORLDTMP} exists in build32


# 148685 03-Aug-2005 ru

- Remove duplicate setting from LIB32MAKE definition.
- Install lib32 bits using the real install(1) program.


# 148683 03-Aug-2005 ru

Make delete-old* and friends useable for cross-builds.


# 148571 30-Jul-2005 netchild

- Only make the delete-old related parts visible if one of the 3 targets
are called (wrapped in ".if make(...)"). This may reduce the amount of
memory needed for all other targets (the file lists are already large
and they will grow further).
- Be verbose in the batch case of the delete-old part too.


# 148558 30-Jul-2005 des

Enforce the native environment requirement for {check,delete}-old-* at
run time, not parse time. This unbreaks cross-builds.

Pointy hat to: netchild


# 148545 29-Jul-2005 netchild

Forced commit [1] to add another design goal which I forgot to mention in
the initial commit of the delete-old feature:

One of the design goals of the recently committed way of removing obsolete
files was to *not* remove a file which we never had in the base system (I'm
not sure I mentioned this in the commit log). So if an administrator decides
to move something to somewhere in the base system (for whatever reason), it
will stay where it is (and this is good, since this move was done with a
specific purpose).

Suggested by: Jeremie Le Hen <jeremie@le-hen.org> [1]
Approved by: mentor (joerg; implicit)


# 148543 29-Jul-2005 netchild

- Move recently added dir into the correct section.
- Add a note about the organisation of the sections.
- Expand shell globs (they worked in a previous version of the delete-old
target, but not in this one).
- Use the correct way of checking for a native environment. [1]
- Add some more obsolete files.
- Fix some bad english. [1]

Suggested by: ru [1]
Approved by: mentor (joerg)


# 148389 25-Jul-2005 des

Disable thread support in BIND. It appears to reduce performance rather
than increase it, and seems to be the cause of the memory leaks which some
users have reported.

Requested by: dougb
MFC after: 5 days


# 148330 23-Jul-2005 netchild

Add delete-old and delete-old-libs targets:
- removes obsolete files/dirs or libraries.
- works in interactive (default) and batch mode
- respects DISTDIR
- documented in UPDATING and build(7)

The head of the file ObsoleteFiles.inc contains instructions how to add
obsolete files/dirs/libs to the list. Obviously one should add obsolete
files to this list, when he removes a file/dir/lib from the basesystem.

Additionally add check-old target:
- allows re@ to check if a file on the obsolete list resurfaces

Design goals:
- allows full control by the user (default interactive mode)
- possibility of scripted removal of obsolete files (batch mode)
- opt-in removal of files (explicit list of files)
- seperate removal of libs (2 delete targets)

Important design decissions:
- structured list of files to remove instead of a plain text file:
* allows to remove additional files if a NO_foo knob is specified
without the need to change the targets (no NO_foo knob is respected
yet)
- not using mtree like NetBSD does:
* mtree doesn't has an interactive mode

Discussed on: arch (long ago), current (this year)
Additional input from: re (hrs)
Approved by: mentor (joerg)


# 148051 15-Jul-2005 ru

Make the `distrib-dirs' target official and working properly
when cross-building (installing). (This is useful for NFS
installing world/kernel to another architecture machine.)


# 147804 06-Jul-2005 kan

Exclude build32 target from the list of toolchain and kernel-toolchain
dependencies. We do not need to build 32bit compat tools to compile
a kernel.

Approved by: re (scottl)
Reported by: jhb


# 147425 16-Jun-2005 ru

Provide 32-bit runtime support on amd64 as a separate distribution, lib32.

Prodded by: obrien
Nodded by: peter
Approved by: re


# 147049 06-Jun-2005 ru

Allow to override the compiler, linker, and assembler used to build 32-bit
shim libraries on amd64.


# 146816 31-May-2005 ru

Add install-info to the list of install tools now that we don't
always bootstrap texinfo.

Reported by: scottl


# 146524 23-May-2005 ru

Stop redundantly rebuilding texinfo on the next __FreeBSD_version bump.


# 145781 01-May-2005 imp

Remove lame and ineffectual attempt to fix ipf breakage of tenderbox.


# 145709 30-Apr-2005 imp

Add some subversive code to cleandir: remove the sbin/ipf tree
entirely to fix the tinderbox machine. This change will be reverted
once the tinderboxen are tindering again.


# 144701 05-Apr-2005 peter

Merge from RELENG_5: invert WITH_LIB32 into NO_LIB32 so that we build the
32 bit libraries by default. Define NO_LIB32 in make.conf if you do not
want this.


# 144699 05-Apr-2005 peter

Fix the lib32 build for amd64 after v1.238 of src/include/Makefile (imp).
That change exposed the fact that I'd forgotten to set $MACHINE here.


# 144192 27-Mar-2005 ru

Fix AMD64 cross-builds when WITH_LIB32 is defined.

(Initially spotted by kris@ on RELENG_5.)


# 143984 22-Mar-2005 ru

Protect against DESTDIR being set during the build of build32.

Reported by: pav


# 143044 02-Mar-2005 ru

Add hacks that I use to test cross-builds (by building on
native and foreign architectures and comparing products).
They eliminate most of the differences caused by different
object directory paths, timestamping, and identification.

(Note WORLDTMP was renamed to ${OBJTREE}${.CURDIR}/tmp.)


# 142838 28-Feb-2005 ru

Bootstrap pwd_mkdb(8) and use its new feature during "make distribute".


# 142766 28-Feb-2005 obrien

Accept the old user interface for NO_CLEAN as it is a POLA violation as
we've eventually changed the user interface of a common command.


# 142757 28-Feb-2005 ru

Unbreak buildworld.


# 142686 27-Feb-2005 ru

Make the format of LC_COLLATE files architecture independent.


# 142683 27-Feb-2005 ru

Bootstrap gencat(1).

OK'ed by: phantom


# 142644 27-Feb-2005 ru

Added the convenience "distribution" target which calls the
target of the same name from src/etc/Makefile with a proper
environment, suitable to be used during upgrades and cross-
builds.


# 142643 27-Feb-2005 ru

Make it clear we no longer support source upgrades from
versions prior to 5.3.


# 142642 27-Feb-2005 ru

Add missing continuation.


# 142640 27-Feb-2005 ru

As threatened, drop support for source upgrades from pre-5.3.

Inspired by: obrien


# 142585 26-Feb-2005 ru

Added the "buildenv" target, for developers only!

CAVEAT: if you run tcsh(1) from within this target, this will
reset your PATH making this target mostly useless. Careful!

Submitted by: jmg, ru


# 142582 26-Feb-2005 ru

Make the format of LC_CTYPE files architecture independent by
introducing the disk formats for _RuneLocale and friends.

The disk formats do not have (useless) pointers and have 32-bit
quantities instead of rune_t and long. (htonl(3) only works
with 32-bit quantities, so there's no loss).

Bootstrap mklocale(1) when necessary. (Bootstrapping from 4.x
would be trivial (verified), but we no longer provide pre-5.3
source upgrades and this is the first commit to actually break
it.)


# 142262 22-Feb-2005 ru

Add endianness support to cap_mkdb(1), useful for cross builds.


# 142077 19-Feb-2005 ru

Add lorder(1) to the list of bootstrap-tools.


# 142076 19-Feb-2005 ru

Allow to cross-build amd64 on non-i386.


# 140509 20-Jan-2005 ru

In crunchgen(1), when calling make(1), don't redirect stderr to stdout,
just rely on the exit status to detect an error. This makes crunchgen(1)
safe to use with certain make(1) debugging flags.

MFC after: 1 week


# 139412 29-Dec-2004 obrien

Remove the special sparc64 time_t support.
If someone isn't running with a 64-bit time_t by now, they don't
track -CURRENT and would probably go to RELENG_5 vs. 6-CURRENT.


# 139212 22-Dec-2004 ru

Further fix the case mentioned in rev. 1.302. The
intent was (and still is) that if a user has say
CPUTYPE=i686 set in /etc/make.conf, we don't print
the assignment type warning unless TARGET_CPUTYPE
is overridden.

Unfortunately, the implementation was buggy, and
only recent changes to bsd.cpu.mk that swapped
canonical and alias values of some CPU types made
the bug apparent.

Here's what happens here.

- CPUTYPE=i686 is set in /etc/make.conf,
- bsd.cpu.mk reset it to "pentiumpro",
- Makefile.inc1 compares this canonical value
with the result of the following test,

make -f /dev/null CPUTYPE=pentiumpro -V CPUTYPE

and expects the result to be "pentiumpro" too,
but "i686" is returned, here's why. We have two
CPUTYPE variables, global, set to "i686" in
/etc/make.conf, and command-line (of a higher
precedence), set to "pentiumpro".

The following part of bsd.cpu.mk,

. elif ${CPUTYPE} == "i686"
CPUTYPE = pentiumpro

which is responsible for converting aliases to
canonical values, sees the value of the CPUTYPE
command-line variable first, "pentiumpro", and
no conversion is done -- the net effect is that
CPUTYPE global stays with its old value "i686",
and "make -V CPUTYPE" (which prints variables
in the global context) returns "i686".

The fix was to pass the CPUTYPE in the test above
as an environment variable instead of as a command
line variable, i.e.,

CPUTYPE=pentiumpro make -f /dev/null -V CPUTYPE

This time, CPUTYPE global is still set to "i686"
initially (by /etc/make.conf), and an envieronment
variable CPUTYPE (of a lower precedence) is set
to "pentiumpro". The .elif sees it's set to
"i686" and resets it to "pentiumpro", and so
"make -V" returns "pentiumpro".

NB: these various types of make(1) variables can
be very painful, especially when combined with
"make -V".


# 139122 21-Dec-2004 ru

NOCLEAN -> NO_CLEAN
NOCLEANDIR -> NO_CLEANDIR


# 139120 21-Dec-2004 ru

NOSHARE -> NO_SHARE


# 139119 21-Dec-2004 ru

NOHTML -> NO_HTML


# 139114 21-Dec-2004 ru

NOGAMES -> NO_GAMES


# 139113 21-Dec-2004 ru

NOCRYPT -> NO_CRYPT


# 139112 21-Dec-2004 ru

NOSHARED -> NO_SHARED


# 139111 21-Dec-2004 ru

NOFSCHG -> NO_FSCHG


# 139106 21-Dec-2004 ru

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


# 139104 21-Dec-2004 ru

NOLIBC_R -> NO_LIBC_R
NOLIBPTHREAD -> NO_LIBPTHREAD
NOLIBTHR -> NO_LIBTHR


# 139103 21-Dec-2004 ru

Start the dreaded NOFOO -> NO_FOO conversion.

OK'ed by: core


# 138965 17-Dec-2004 ru

Minor tweaks in "make update" comments.


# 138291 01-Dec-2004 peter

Do not leave build droppings in /usr/src for usr.sbin/pcvt/keycap and
usr.bin/lex/lib for the 32 bit libraries on amd64. Add an explicit
obj for these two directories that are built in for the "libraries" target.


# 138008 23-Nov-2004 ru

Hopefully fix the "aicasm" build-tool issue when using ${KERNSRCDIR}
different from ${.CURDIR}.

Reported by: jhb


# 137951 20-Nov-2004 peter

In the amd64 hybrid libraries case, move the kerberos5 tools to before
building the kerberos5 includes. This is not the same patch that
Bjoern A. Zeeb came up with, but the credit still goes to him for finding
the problem. Thanks!


# 137716 15-Nov-2004 peter

Oops, all my test boxes have NO_KERBEROS set, so I didn't hit the kerberos5
build tools problem. I'd missed the kerberos5/tools stuff entirely. Add
the missing bits.


# 137675 13-Nov-2004 bz

Add knob NO_NIS (fka NO_YP_LIBC) and make world compileable when set.
If turned on no NIS support and related programs will be built.

Lost parts rediscovered by: Danny Braniss <danny at cs.huji.ac.il>
PR: bin/68303
No objections: des, gshapiro, nectar
Reviewed by: ru
Approved by: rwatson (mentor)
MFC after: 2 weeks


# 137612 12-Nov-2004 ru

Show stray files during "cvs update".


# 137560 10-Nov-2004 peter

Ruslan told me I should have quoted the arch strings when comparing to
MACHINE_ARCH. Belatedly get around to doing it.


# 137558 10-Nov-2004 peter

Change WANT_LIB32 to WITH_LIB32. Sorry for the whiplash folks.
It was pointed out to me that the convention we have is to use WITH_
elsewhere in the system, eg: ports etc. This is all temporary anyway
and presumably will be inverted to a NO_LIB32 or something like it in
the future.


# 137288 06-Nov-2004 peter

Convert tools/lib32/build.sh into world connectable hooks. This still
rates pretty high on the "hack!" scale, but it works for me. Adding
-DWANT_LIB32 to the world build command line, or 'WANT_LIB32=yes' to
/etc/make.conf will include the 32 bit libraries with the build.

I have not made this default behavior. Cross compiling this stuff is an
adventure I have not investigated.

This is still a WIP. We needed this at work so that we could install from
a readonly obj tree - lib32/build.sh wasn't up to that.


# 136910 24-Oct-2004 ru

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


# 136407 11-Oct-2004 peter

Catch another gcc-3.3 c++ include path reference and update it to 3.4.


# 135851 27-Sep-2004 dougb

1. Add much finer granularity to the NO_BIND knobs with the addition of:
NO_BIND_DNSSEC, NO_BIND_ETC, NO_BIND_NAMED, and NO_BIND_UTILS.

2. Make creation of directories in /usr/include that are only needed
in the WITH_BIND_LIBS case conditional.

Reviewed by: ru, des


# 135553 21-Sep-2004 ru

Hopefully fix alpha and sparc64 builds: on these architectures,
libpthread is provided by src/lib/libc_r.

Also, removed lib/bind from _generic_libs, "lib" will suffice.
Also, removed redundant lib/bind dependency on lib/libpthread
(as lib/bind is not in the _prebuild_libs, it's not needed).

Prodded by: trhodes@ reporting that des@ is on the flight


# 135549 21-Sep-2004 des

Switch from BIND 8 to BIND 9.

Submitted by: (in part) dougb@, trhodes@
Reviewed by: dougb@, trhodes@, re@
MFC after: 5 days


# 134904 07-Sep-2004 imp

[[ Forced commit due to fumble with the file used to commit with.
cvsgNMRSs vs cvsg4JFe3 :-( ]]

When recursing, print the target name as well as the subdirectory.
This changes the output a little, but appears to break no scripts.
These changes should make the debugging of build problems easier, as
well as explain why it appears things build 4 times (they don't,
really, since there's obj, depend, all and install).

I've been running these changes, or variations on them, for about 2
years.

Reviewed by: arch@ (des, markm, koshy, marcel, scottl)


# 134903 07-Sep-2004 imp

Although 'Unanimous Consent' appears to be a well defined and used in
the US Senate, Canadian Parliament and Australian Senate, it was
causing some confusion. After some consultation with Mark Murray,
change this to 'without objection' since often times a plain-speaking
term is preferable to a regionally used term.

Also, clarify that this procedure is to be used when for more mundane
matters that need a sanity check, but don't need the whole, ponderous
voting proceedure that more difficult issues require. Core members
that read email in any given 48 hour period are trusted enough to know
the difference and to provide the sanity check as necessary.

Reviewed by: markm


# 134343 26-Aug-2004 paul

Backout the CVSTAG variable, it could potentially be dangerous if
you track multiple releases in different trees.

Leave the CVSOPTIONS variable there since it could be useful.


# 134311 25-Aug-2004 ru

Fix "make world DESTDIR=/mnt" to work again. A recent change
to make(1) that causes command-line variables to be passed as
command-line variables to sub-processes that make(1) executes
broke it. By changing the type of all DESTDIR variables used
internally in Makefile.inc1, from environment to command-line
variables of the highest priority, I was able to "make world"
with success, with the command-line variable DESTDIR set.


# 134279 24-Aug-2004 paul

Add a CVSTAG makefile variable that can be set in /etc/make.conf that
determines which CVS tag to track when running make update. This makes
it easier to configure a box to track a particular release if it does
automated updates from a cvs repository.


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


# 133942 18-Aug-2004 ru

Moved the MAKEOBJDIRPREFIX check from Makefile.inc1 to Makefile,
to suppress warnings with installworld and distributeworld when
env(1) cannot be found in the PATH.


# 133873 16-Aug-2004 ru

sys/boot seems to compile fine on Alpha; unbreak ``make release''.

Prodded by: re-alpha (wilko)


# 133507 11-Aug-2004 harti

Ensure that a new gensnmptree is built. This should fix the problems
with the snmp_atm module.


# 133483 11-Aug-2004 ru

Enforce the check that MAKEOBJDIRPREFIX (if set) is set in environment
only, and not as a global (in /etc/make.conf) or command-line variable.

MAKEOBJDIRPREFIX has never been a global or command-line variable, and
the fact that it works in some scenarios for "make buildworld" doesn't
make it any more correct. Using it as a global or command-line variable
is error prone, discouraged, costs us lot of false build reports, etc.

This commit is aimed to fix it once and for all.

Anyone potentially objecting to this change is encouraged to read the
make(1) and make.conf(5) manpages, and the comments regarding the use
of the MAKEOBJDIRPREFIX variable in /usr/share/mk/bsd.obj.mk and
/usr/share/examples/etc/make.conf.


# 133433 10-Aug-2004 harti

Fix recent breakage in rescue. We need to build a new crunchgen
that will not emit the bad MAKE=make line that caused the breakage.

Submitted by: ru


# 133376 09-Aug-2004 harti

Make make recurse into sub-directories and sub-makes when given
two -n flags. If only one -n flag is given the old behaviour
is retained (POLA). In order to make this working for installworld
change the IMAKEENV in this case so that the tools are found
(we have no temporary installation environment in this case).

Submitted by: ru (IMAKEENV part)


# 133368 09-Aug-2004 obrien

The file(1) related build-tool moved to libmagic.


# 132751 28-Jul-2004 kan

Bmake glue for GCC 3.4.2-prerelease.


# 131795 08-Jul-2004 harti

Get rid of the THISHOST variable when building on sparc64. The problem
with it is that it is set by calling hostname and hostname isn't normally
in the path at that point.


# 130628 17-Jun-2004 obrien

Third time's a charm?? (the logic was reversed from desired)
Time for sleep...

Submitted by: ru


# 130624 17-Jun-2004 obrien

Grrr, use the userland spelling not the kernel tree spelling.


# 130621 17-Jun-2004 obrien

Fall out from Binutils 2.15: disable building the Alpha loader.


# 129342 17-May-2004 ru

Allow buildworld and friends to complete when make(1) is called
with some debug flags (-d).

Noticed by: Gleb Smirnoff


# 129174 13-May-2004 ru

Record the libssl.so dependency on libcrypto.so. This should
help some ports that depend on libradius that recently gained
the dependency on libssl. This is also how the stock OpenSSL
build would link libssl.so on FreeBSD.

Prompted by: kris
OK'ed by: markm, nectar


# 129148 12-May-2004 ru

Catch up with the current output of tools/make_libdeps.sh:

- Removed the stale dependency of libypclnt on librpcsvc.
- Fixed the dependency graph of libssh.


# 128684 27-Apr-2004 ru

- Added rad_demangle() for demangling user-passwords (needed for
MS-CHAPv1 MPPE-keys).
- Added rad_demangle_mppe_key() for demangling mppe-keys (needed
for MPPE-keys).
- Added some typecasts for avoiding compiler warnings.
- Fix: better handle wrong usage of the lib (if the programmer
has not called rad_create_request() but rad_put_*(), then a
weird error message was returned).
- Added a new function for putting the Message-Authenticator.
- Verify the Message-Authenticator, if it was found inside a
response packet and silently drop the packet, if the validation
failed.
- Implicitly put the Message-Authenticator, if the EAP-Message
attribute was added.
- Added some missing defines.

Submitted by: Michael Bretterklieber
PR: 46555


# 128234 14-Apr-2004 harti

Move the SNMP MIBs and tree definitions from /usr/share/bsnmp to
/usr/share/snmp. This mirrors the use of /usr/local/share/snmp and
makes also more sense when non-bsnmp-specific MIBs go in.


# 128189 13-Apr-2004 des

Add a kernel-toolchain target which only builds the bits required to build
a kernel. This is essentially the same as the toolchain target, except
that it does not build headers and libraries.

Submitted by: ru


# 127360 24-Mar-2004 ru

Added the `toolchain' top-level target, which builds enough of
buildworld, up to and including libraries, except for actually
building the world.

Requested by: many


# 127207 19-Mar-2004 ru

Removed 3x2 dots I don't like. ;)


# 127202 19-Mar-2004 ru

Create /usr/sbin in ${WORLDTMP}. I've accidentally removed it in
revision 1.343, but it's needed for btxld(8), and this fix (along
with the --enable-64-bit-bfd configured BFD on i386) allows other
architectures to successfully cross-build the i386 world.

Tested on: alpha


# 127166 18-Mar-2004 ru

Comment various stages of buildkernel, symmetrical to buildworld.


# 126976 14-Mar-2004 ru

Don't scare non-root users attempting to build world.


# 126921 13-Mar-2004 ru

Create hierarchy before installing a new kernel. This is needed
because we require that a new kernel be installed prior to a new
world, and we may need some new directories to succeed.

Once MFCed, this will also help those poor souls who redundantly
``mv /modules /modules.old'' in RELENG_4 before an installkernel.

Requested by: many
MFC after: 3 days


# 126876 12-Mar-2004 ru

Hide internal implementation details of UID/GID checks from the user.


# 126875 12-Mar-2004 ru

Use find(1) instead of ``pw groupshow'' to detect missing groups.
Restore checks for recently added PF groups.

Reviewed by: mlaier


# 126867 12-Mar-2004 gshapiro

Use 'pw groupshow' instead of 'id -g' to see if a group exists.

PR: 64073
Submitted by: jhb
MFC after: 5 days


# 126829 10-Mar-2004 mlaier

Back out id -g checks as they are wrong (sendmail group untouched).

Requested by: dwhite
Approve by: dwhite


# 126815 10-Mar-2004 mlaier

Add installcheck for proxy:proxy and authpf.

Suggested by: ru
Approved by: bms(mentor)


# 126664 05-Mar-2004 gad

Reword two more lines to avoid wrapping.


# 126612 04-Mar-2004 gad

Minor stylistic improvements in the SPECIAL_INSTALLCHECKS section, mainly
to reduce the number of wrapped lines.

Suggested by: bde


# 126584 04-Mar-2004 bde

Improved the description of the installkernel targets.

Don't hide what we do to force failures for the installkernel targets
or other targets.


# 126566 03-Mar-2004 gad

[this is just a forced commit to say:] The time_t-specific safety measure
added by the sparc64_installcheck target is mostly from Marcel, although
it includes some adjustments of my own...


# 126561 03-Mar-2004 gad

Commit the first set of files for changing time_t on freebsd/sparc64
from a 32-bit value to a 64-bit value. This commit does not actually
change anything. It merely provides instructions, scripts, and a safety
measure in Makefile.inc1 for people who want to make the change.

The real change to 64-bit time_t's on sparc64 is scheduled to happen
on March 10th, assuming that so major problems are found between now
and then by early-adopters.

Reviewed by: freebsd-sparc64


# 125789 13-Feb-2004 ru

Drop directory existence checks.

OK'ed by: bde


# 125261 31-Jan-2004 ru

Overhaul of kerberos5/ makefiles. Most significant changes are:

- Dropped support for standalone builds, this was only partially
supported anyway, and required so much magic in makefiles that
made life dangerous (e.g., by using the custom yacc rules).

- Got rid of .OBJDIR in makefiles -- makes building of individual
files possible again.

- Made the .x.c transformations -j safe.

- Reprogrammed LDADD to fix static build of some utilities that
was broken.

- Fixed LDFLAGS and DPADD in the WITH_OPENLDAP case -- positively
affects the contents of .depend files.

- Removed redundant .h's from SRCS, only kept those that are
generated.

- libkrb5/ INCS were bogusly installed again with libgssapi/.

- Made build-tools real tools with their own makefiles in
separate directories. This allows us to properly track
their dependencies, etc.

- Faster build, 21% less of makefile code!

Approved by: nectar
Reviewed by: markm
Silence on: arch


# 124873 23-Jan-2004 harti

Create the OID and tree files while building the modules and the daemon
instead of creating them by hand and storing them in the CVS tree. Add
gensnmptree to the bootstrap tools (it is used to generated these files).
This simplifies the update procedure.

Submitted by: ru


# 124831 22-Jan-2004 ru

- Run makewhatis(1) in etc/Makefile at the end of "install".
- Removed redundant and undocumented NO_MAKEDB_RUN knob.


# 124603 16-Jan-2004 ru

Create ${WORLDTMP}/legacy/usr/include/c++/3.3 for usr.bin/lex.


# 124592 16-Jan-2004 ru

lex(1) prior to flex.skl,v 1.8 and gen.c,v 1.7 requires bootstrapping.

Prodded by: nectar


# 124544 15-Jan-2004 ru

Alongside revision 1.382, don't build profiled libraries so early
in the build -- it's OK to keep this for the "make all" phase.


# 123309 08-Dec-2003 gad

Fix a problem where 'make installworld' will fail and leave the
system in a messy state *if* the user is upgrading from a system
which has no /libexec to a system which builds a DYNAMICROOT, and
if that user has set DISTDIR (as documented for ports, but it turns
out that the same variable name is used for a completely unrelated
purpose in 'make release').

There are other possible fixes for this issue, and ru@ may later
decide to commit one of those fixes. I just wanted some fix in
ASAP, and this is the fix that I have tested.

Reviewed by: bde, imp, and ru


# 122813 16-Nov-2003 gordon

Invert the condition that installs the dynamic linker early, since
DYNAMICROOT is now the default. Also document -DNO_DYNAMICROOT since
that is going to be a documented feature.

Submitted by: matusita, rushani


# 122568 12-Nov-2003 harti

The snmp_netgraph module depends on libnetgraph. So add a dependency and
add libnetgraph to the list of prebuilt libraries in the main Makefile.

Reviewed by: ru


# 122400 10-Nov-2003 harti

Make two directories under usr/share/bsnmp that are needed during
library build to install tree definition files and MIBS.

Okay'ed by: ru


# 121979 03-Nov-2003 ru

Don't be so chatty about building includes.


# 120760 04-Oct-2003 ru

Retired the "most" and "installmost" targets -- they just
do not have a chance to work nowadays as we have a lot of
internal libraries in lib/.

Discussed with: marcel, wollman


# 120120 16-Sep-2003 ru

Help those attempting to upgrade from static to dynamic root.


# 120102 15-Sep-2003 ru

Catch up with libpthread/support/Makefile.inc,v 1.6 and revert
Makefile.inc1 revisions 1.365 and 1.367: libc_pic.a is no longer
necessary to build libpthread.so (ie: libkse.so).


# 119846 07-Sep-2003 ru

- No need to create libfoo.so -> libfoo.so.X symlinks in /lib,
as it was decided that our toolchain will revert to looking
for libraries in /usr/lib only.

- Make /usr/lib/libfoo.so -> /lib/libfoo.so.X symlinks absolute
so that they still work if /usr is symlinked.

- Remove stale /usr/lib/libfoo.so.X libraries during install.

Discussed with: gordon, obrien, peter


# 119645 01-Sep-2003 scottl

Clarify the numbering of some of the build stages.


# 119580 30-Aug-2003 ru

Revert rev. 1.378, and restore the correct arithmetic expression
syntax. The

make buildworld
mv /usr/include /usr/include.old
make installworld

issue has been fixed a month ago in Makefile,v 1.285, and there
is no valid reason to continue to keep the wrong syntax here --
buildworld takes care of upgrading a make for you if necessary.
But if you find yourself in an environment with an old make(1)
binary that breaks on this, and this is because you attempted
to run a target other than buildworld, don't whine but try again
with -DALWAYS_CHECK_MAKE defined -- it should do the trick.
Otherwise, if you still have a problem, please report it as a
bug and attach the ``make -dl ...'' output.

Reviewed by: marcel


# 119537 28-Aug-2003 marcel

Remove the AFM (Anti-Footshooting Measure) added when we split the
5.x signal code from the 4.x signal code. The split happened in
Oct 2002 and we have had 2 releases since then. A kernel older than
5.0-R cannot reasonably be called a -current kernel anymore.

This does not break upgrading from an 10 month older kernel. It just
makes it more exiting.


# 119496 27-Aug-2003 imp

OSRELDATE should fallback to 'unknown' rather than the kernel that's
booted on this machine. This is a slightly better default to use.

Requested by: ru


# 119464 25-Aug-2003 imp

Add @ before the shell invocation for the testing of sufficiently new sh.
No need to see this message twice.


# 119456 25-Aug-2003 imp

Fall back to using the kernel version for the OSRELDATE when
/usr/include/osreldate.h doesn't exist on the system. While this
could be worked around by saying something like 'make includes
OSLRELDATE=0' when this file doesn't exist, it is just as easy to
provide a fallback when the file we know we depend on doesn't exist.
While this doesn't make all targets work w/o a
/usr/include/osreldate.h, because some of the FreeBSD bootstrap tools
use this file. 'make includes' however does work.

Noticed by: peter, obrien (and likely others)
Pointy hat to: imp (for suggesting a method that depended on /usr/include)


# 119012 17-Aug-2003 gordon

In preparation for libraries being installed in /lib, add lib to the
list of build directories during the tool creation phase of the build.


# 117976 24-Jul-2003 markm

Don't lint(1) so early in the build. Its OK to keep this for the
"make all" phase.


# 117555 14-Jul-2003 gordon

Apparently we prefer underscores in new options. Sorry for the churn folks.

Requested by: obrien


# 117450 11-Jul-2003 gordon

Forgot that the rescue subdir needs to be a conditional for the
build-tools bit.


# 117449 11-Jul-2003 gordon

Turn rescue back on, conditional to NORESCUE. We seem to be split on
using underscores or not, so I just randomly picked a style. I think
I have the logic correct, but if someone wants to give it a once over
that would be good.

Tim submitted a patch to fix the cross-building issues which I tested
with a tinderbox run for sparc64.

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


# 117376 10-Jul-2003 kris

Correct makefile syntax error in r1.375.


# 117322 07-Jul-2003 obrien

Style nit.


# 117293 06-Jul-2003 gshapiro

Use 'id' instead of 'grep' to detect the presence of the smmsp user/group.
This fixes the check for users with smmsp in NIS instead of their local
files.

Suggested by: peter
MFC after: 5 days


# 117229 04-Jul-2003 ru

Fixed style bugs related to parentheses in Makefile.inc1.

Submitted by: bde

Fixed nearby bug: propagate the root Makefile's idea of
the appropriate "make" binary down to release/Makefile.


# 117177 02-Jul-2003 gordon

More NO_RESCUE to RESCUE transitions.

Submitted by: ru


# 117140 01-Jul-2003 gordon

Switch the logic on the /rescue bits from NO_RESCUE to RESCUE, at least
until there is a fix for cross building available.


# 117112 01-Jul-2003 ru

Put rescue/ into a correct slot in the SUBDIR list. Sort bootstrap-,
build-, and cross-tools lists, reformat lists for easier maintenance.

Submitted by: bde, ru


# 117110 01-Jul-2003 ru

Only bootstrap crunchide(1) and build crunchgen(1) when necessary.
The latter needs to be built either if it's used as a cross-tool
(${TARGET_ARCH} != ${MACHINE_ARCH}) or if it has backward compat
issues, like e.g. lack of the AMD64 support.


# 117064 30-Jun-2003 gordon

Do the deed and hookup /rescue to the build. As a result, always build
crunchgen and crunchide as cross-tools.

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


# 116939 28-Jun-2003 smkelly

- Fix a typo.

PR: bin/53864
Submitted by: Lukas Ertl <l.ertl@univie.ac.at>
Approved by: jeff (mentor)


# 116679 22-Jun-2003 simokawa

Allow installkernel.debug and reinstallkernel.debug.


# 116343 14-Jun-2003 imp

Minor tweaks to the build process so that we can build 5.1-current on
4.8-stable:

Must build lib/libc before libpthread. Fix how we do this to be more
consistant with how lists are handled in the file. Also, don't bother
to prebuild libc if we're not building libpthread.

Submitted by: ru@
Reviewed by: bde@ (before ru@ submitted it)


# 116335 14-Jun-2003 des

Do not bogusly set CSTD to the empty string.


# 116005 08-Jun-2003 imp

Add lib/libc to list of _prebuild_libs because we need the target
built libc_pic.a for libkse.

# This should finally fix the build on 4.x

Submitted by: kan


# 115968 07-Jun-2003 imp

When boot strapping from older systems, don't specify a C standard in
the bootstrap process. This allows one to more completely build from
a -stable box.

Reviewed by: ru@ (briefly)


# 115574 31-May-2003 obrien

Wrap gperf & groff wth NO_CXX.


# 115219 21-May-2003 ru

Unbreak world build if NO_OPENSSL is defined but NO_KERBEROS is not.

Submitted by: Marius Strobl <marius@alchemy.franken.de>
Approved by: re (jhb)


# 115157 19-May-2003 des

Retire the useless NOSECURE knob.

Approved by: re (scottl)


# 115141 18-May-2003 ru

Unbreak parallel make of _includes after revision 1.356 changes.

Spotted by: bde
Approved by: re (scottl)


# 115122 17-May-2003 ru

-lbsdxml lives in lib/libexpat. *Blush*

Submitted by: tmm (Makefile.inc1)


# 115120 17-May-2003 ru

Unbreak world: record libgeom dependency on libbsdxml here too.

Forgotten by: ru
Submitted by: des
Verified by: tools/make_libdeps.sh
Approved by: re (scottl) (related change)


# 115034 15-May-2003 ru

Use the installed world's idea of OSRELDATE rather than the kernel.
This was the initial intent anyway, and it became clear that it is
really necessary to treat it this way, as many people happen to run
with kernel newer than the installed world.

Submitted by: imp, ru
Approved by: re (scottl)


# 114731 05-May-2003 bde

Install symlinks to individual headers instead of symlinks to directories
in the SHARED=symlinks case. Symlinks to directories only work if all the
the necessary headers are in 1 directory, but the necessary headers are
scattered for at least ipfilter headers in <netinet>. This change also
avoids polluting /usr/include with non-headers; the /usr/include hierarchy
is now independent of the setting of SHARED.

Submitted by: ru (edited to fix netgraph/bluetooth/include and machine/pc)
PR: 44148


# 114719 05-May-2003 markm

Negate the logic of MAKE_KERBEROS5, and replace it with NO_KERBEROS.


# 114634 04-May-2003 imp

Many developers run with userland != to kernel. While this isn't
supported, it usually works for months at a time. Allow these people
to override the OSRELDATE of their installed world when things don't
match and the exact OSRELDATE matters and is different than the
kernel. Now that Makefile.inc1 depends more and more about which date
you have to optimize the pieces it builds, it may be necessary to
pessimize things if its guesses are wrong.

If OSRELDATE is already set, we won't fork the sysctl to find out what
the kernel's date is.

Developers on IRC suggested that they run mismatches all the time as
well.

Reviewed by: obrien


# 114458 01-May-2003 ru

For the time being, upgrade the whole Groff (to version 1.19),
but stop doing so again on the next __FreeBSD_version bump.


# 114292 30-Apr-2003 ru

Restore the ordering of NO's and remove one redundant NOLINT.

Reviewed by: markm


# 114288 30-Apr-2003 markm

Fix "make world" for the WANT_LINT case. The various build tools
must not try to lint(1) stuff at *-tools time; keep the linting
for the actual build (which comes later).


# 114287 30-Apr-2003 ru

Groff after 2002/10/15 has no known backward compatibility issues,
but we always want the latest macro files.


# 113582 16-Apr-2003 jhb

Rename KRNLSRCDIR to KERNSRCDIR and allow it to be overridden. The name
change was to be consistent with other overridable variables such as
KERNCONFDIR and KERNCONF.


# 113478 14-Apr-2003 ru

kbdcontrol.c rev. 1.35 and onwards support the KEYMAP_PATH
environment variable, and don't need to be bootstrapped.


# 113444 13-Apr-2003 ru

yacc(1) with skeleton.c rev. 1.29 in HEAD and rev. 1.28.2.1 in RELENG_4,
and onwards, are believed to not require bootstrapping.


# 113443 13-Apr-2003 ru

xargs.c rev. 1.10 in HEAD and rev. 1.9.2.1 in RELENG_4,
and onwards, have support for the -J option we need.


# 113442 13-Apr-2003 ru

elf2aout.c,v 1.6 and onwards have no known backward compatibility issues.


# 113440 13-Apr-2003 ru

uudecode.c rev. 1.23 in HEAD and rev. 1.13.2.3 in RELENG_4,
and onwards, have no known backwards compatibility issues.


# 113439 13-Apr-2003 ru

Only create directories that are really needed.


# 113435 13-Apr-2003 ru

Install bootstrap-tools into a separate subtree of ${WORLDTMP}.
This allows us to use them as early as possible while building
bootstrap-, build-, and cross-tools. Some cleanups to follow.

This change resolves the gperf(1) bootstrapping issue (missing
-E option) in gnu/usr.bin/cc/cc1plus while in the cross-tools
stage when upgrading from 4.0-RELEASE.


# 113400 12-Apr-2003 ru

Make sure legacy stuff comes last. Some tools that use
legacy stuff (binutils) depend on this order.

For this to work, provide (and use) specialized versions
of bsd.prog.mk and bsd.lib.mk that include the standard
versions first, then augment CFLAGS, DPADD, LDADD, and
LDFLAGS as necessary, with the legacy stuff.

Tested on: 4.0-RELEASE


# 113368 11-Apr-2003 ru

libc_gen/basename.c depends on include/libgen.h.


# 113190 06-Apr-2003 ru

Put back the undocumented change from rev. 1.334 too: no
need to create ${WORLDTMP}/legacy/usr/include explicitly.


# 113189 06-Apr-2003 imp

Put back parts of 1.335 and 1.336 that 1.337 accidentally backed out.

Submitted by: ru


# 113185 06-Apr-2003 imp

-legacy and /.../legacy/... looks better than build or bootstrap in
the logs, so use that instead.

Submitted by: obrien.


# 113184 06-Apr-2003 ru

Always remove ${WORLDTMP}/build/usr/include, even in the NOCLEAN
case. This way, we won't have stale compatibility headers there.


# 113182 06-Apr-2003 ru

Moved libbuild target to where it belongs. Added a comment.


# 113180 06-Apr-2003 ru

Fixed buildworld stages names in comments.


# 113157 06-Apr-2003 imp

We can't use ${WORLDTMP}/usr/{include,lib} for the compat layer. This
is because we populate these directories later, and a subsequent
-DNOCLEAN build may fail. So, we put them in
${WORLDTMP}/build/usr/{include,lib} instead and adjust Makefile.boot.

Again, this works on -stable and -current, but might break older
versions.

Submitted by: ru@


# 113136 05-Apr-2003 imp

Migrate to a new way of dealing with building from old revisions of
FreeBSD. This method attempts to centralize all the necessary hacks
or work arounds in one of two places in the tree (src/Makefile.inc1
and src/tools/build). We build a small compatibility library
(libbuild.a) as well as selectively installing necessary include
files. We then include this directory when building host binaries.

This removes all the past release compatibilty hacks from various
places in the tree. We still build on tip of stable and current. I
will work with those that want to support more, although I anticipate
it will just work.

Many thanks to ru@, obrien@ and jhb@ for providing valuable input at
various stage of implementation, as well as for working together to
positively effect a change for the better.


# 113099 04-Apr-2003 imp

Diff reduction with my p4 changes:

Add @ before ${ECHODIR} where appropriate because we don't need to echo
the echo command... This gets rid of extra echo ===> in log files...


# 112937 01-Apr-2003 ru

Parallelize (on the top-level SUBDIR list) the "all" stage of
buildworld. This gives 5-11% percent gain in real buildworld
times on various UP and SMP systems here. I used 4 * hw.ncpu
as an argument to "make -j" in my tests.


# 112936 01-Apr-2003 ru

Pass NO_WARNS to the build-tool stage too; -Wsystem-headers
isn't known to the 4.x system compiler.


# 112869 31-Mar-2003 ru

Enable cpp(1) warnings in system headers. GCC is oriented on
glibc which is externally maintained, so GCC ships with these
warnings turned off by default. This is also consistent with
the src/contrib/gcc/c-lex.c,v 1.2 change.


# 112868 31-Mar-2003 ru

Slightly improve buildworld times by excluding crunchide(1)
and kgzip(8) from the list of cross-tools during the normal,
non-"make release" buildworld.

Also, don't gratuitously build them, btxld(8) and elf2aout(1)
for native architecture builds, since they have no known
boostrapping issues along the supported upgrade path.

Prodded by: peter


# 112089 11-Mar-2003 ru

Convert kgzip(8) to be an i386 cross-tool. This is needed for
cross-releasing i386 on different architectures. This version
provides an i386 version of <a.out.h>, and handles endianness.

Tested on: alpha, sparc64


# 111984 08-Mar-2003 markm

KerberosIV de-orbit burn continues. Disconnect from "make world".


# 111947 06-Mar-2003 ru

With CVS_UPDATE, use read-only repository mode by default.


# 111873 04-Mar-2003 ru

Doh, committed to the wrong branch.

Spotted by: johan


# 111862 04-Mar-2003 ru

MFC: Ship with /etc/login.conf hashed.

Approved by: re


# 111810 03-Mar-2003 ru

Make sure the default install comes with /etc/login.conf hashed.


# 111795 03-Mar-2003 ru

Catch up with sys/conf/kern.post.mk,v 1.39 -- we can now use
plain ${CLEANDIR} to clean kernel and modules. This has an
additional nicety of respecting NOCLEANDIR.


# 111439 24-Feb-2003 ru

Ensure that build-tools end up in the object directory different
from the source directory. (This mostly affects the RELENG_4's
``make release'' release.5 target, where "rtermcap" build-tool
for release/sysinstall ends up in the source directory and later
steps of release.5 wipe it out.)

Spotted by: jhay


# 111212 21-Feb-2003 ru

Respect ``makeoptions NO_MODULES'' specified in the kernel config file.


# 110722 11-Feb-2003 trhodes

Add -DNOMAN to the list.


# 110485 07-Feb-2003 jkoshy

Catch typos in the kernel name specified for an "installkernel" invocation
early on, rather than failing later with an obscure error message.

Make error messages appear consistent.


# 110312 04-Feb-2003 phk

Don't attempt buildworld if the path to the source-tree contains a comma.

Can be removed if the underlying issue is fixed.

Submitted by: Flemming Jacobsen <fj@batmule.dk>


# 108439 30-Dec-2002 obrien

Move elf2aout back to /usr/bin -- it is a general development tool, not
a sysadmin tool.


# 107515 02-Dec-2002 ru

For installkernel, use the fresh tools (if we've built them with
buildworld).

Reviewed by: imp, marcel
Approved by: re (rwatson)


# 106921 14-Nov-2002 ru

Make dynamic PAM modules depend on dynamic PAM library.

Requested by: des, markm


# 106852 13-Nov-2002 ru

Take __FreeBSD_version into account when BOOTSTRAPPING.


# 106389 03-Nov-2002 scottl

Hook the aic7xxx modules up. This requires some extra care since aicasm
is a compiler tool and needs to be compiled by the host compiler. I've
tested this in i386->sparc cross-build, 4.7->current upgrade, normal
buildkernel target, and normal /sys/i386/compile/GENERIC configurations.

Submitted by: ru


# 106079 28-Oct-2002 ru

Emptify.


# 106014 27-Oct-2002 peter

DISTDIR is used by 'make release', lets see if this is enough to turn
off the execution test.


# 105953 25-Oct-2002 peter

Provide a bit of anti-foot-shooting protection. Make sure that in the
non-cross cases without DESTDIR, that the bin/sh that we're about to
install works. Otherwise, a 'make installworld' without having already
rebooted with a post-signal-fix kernel is a rather big disaster when
important things like /bin/sh coredump.


# 105680 22-Oct-2002 ru

_games is gone in rev. 1.305.


# 105515 20-Oct-2002 markm

Do not build the majority of the games. Remaining are the
"utility-like" games and everyone's favourite, fortune(6).


# 103436 16-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


# 102312 23-Aug-2002 johan

Similar to bsd.subdir.mk, echo the name of the dir before
doing the cd. This is done for bootstrap-tools,
build-tools, cross-tools, and the libraries loop.

Reviewed by: ru
Approved by: sheldonh (mentor)
MFC after: 1 week


# 101530 08-Aug-2002 ru

The intent in rev. 1.299 was to make the CPUTYPE assignment type check
bother "only those who attempts to set it to a different value". This
got broken in rev. 1.300 (that fixed another race).

Reported by: ache


# 101461 07-Aug-2002 ru

Makefile.inc1 may eventually be merged with Makefile, so fix an
endless recursion bug similar to the one that has been fixed in
release/Makefile,v 1.698, in advance. A related fix to make(1)
has been committed in make/main.c,v 1.68.

Requested by: bde (who has them merged already)


# 101363 05-Aug-2002 ru

An empty CPUTYPE now means ``the default CPUTYPE'' in bsd.cpu.mk.
If there was no CPUTYPE assignment in /etc/make.conf, this would
cause the ``CPUTYPE assignment type'' check to falsely fail.

Reported by: johan

Fixed this by making sure we always pass the non-empty CPUTYPE.
Also make sure we use the correct set of share/mk files in our
test.


# 101232 02-Aug-2002 ru

TARGET_CPUTYPE should exist solely in Makefile.inc1, similar to
TARGET_ARCH and TARGET. This is problematic when one has the =
(unconditional) type of assigment for CPUTYPE in /etc/make.conf.
(This would override what was set on the command line to "make
buildworld".)

Add a (horrible) kludge to Makefile.inc1 to check the type of
assignment for CPUTYPE (only for those who attempts to set it to
a different value). Fix an example make.conf. Fix the kernel's
build-tools target (aicasm only at the moment) to catch up with
bsd.cpu.mk,v 1.15 (BOOTSTRAPPING replaced with NO_CPU_CFLAGS in
Makefile.inc1's BMAKE).

Reviewed by: jhb


# 101015 31-Jul-2002 jhb

- Define NO_CPU_CFLAGS during BMAKE and TMAKE (and thus XMAKE) so that
bsd.cpu.mk doesn't have to worry about compilers other than the current
version.
- Allow TARGET_CPUTYPE to override CPUTYPE in bsd.cpu.mk.
- Treat an empty CPUTYPE the same as an undefined CPUTYPE.
- For buildworld, buildkernel, etc., define TARGET_CPUTYPE to CPUTYPE for
native builds and define it to be empty for cross-builds.
TARGET_CPUTYPE is only defined if it is not already defined via the
commandline or environment.


# 100643 24-Jul-2002 ru

Inline ${_cxx_consumers}.


# 100642 24-Jul-2002 peter

We're done with 1.287 and 1.288 now.

Submitted by: ru


# 99777 11-Jul-2002 ru

Pass -DBOOTSTRAPPING to the kernel's build tool (sys/dev/aic7xxx/aicasm).
This way, it has a chance to be built with gcc 2.95.x (using the bandaid
in share/mk/bsd.cpu.mk,v 1.11).

Feedback timeout from: gordon


# 99219 01-Jul-2002 jmallett

libufs does not need built before most things, after all.

Submitted by: bde, ru


# 99200 01-Jul-2002 jmallett

Add libufs to prebuild_libs, since lots of things will want it, in time.


# 98548 21-Jun-2002 ru

Make NO_OPENSSL actually imply NO_OPENSSH, as documented in make.conf(5).


# 98298 16-Jun-2002 sobomax

Don't try to build libssh if NO_OPENSSL is defined because NO_OPENSSL implies
NO_OPENSSH.


# 97930 06-Jun-2002 ru

libfetch now depends on libcrypto and libssl.


# 97662 31-May-2002 ru

On behalf of lib/compat/compat4x.i386/libusb.so.0.bz2.uu,v 1.1,
added uudecode(1) to bootstrap-tools.


# 97622 30-May-2002 peter

Ignore a c++ that is version other than 3.1 if it does not also match
cc's version. libgcc.a will have been clobbered and will no longer have
the old c++ support.

Submitted by: jhb


# 97439 29-May-2002 peter

Bandaid for helping people who have a broken /usr/bin/c++ installation.

This only affects the -current early adopters and developers who have
done a 'make world' in the last few weeks and as a result installed a
gcc-3.1 version of /usr/bin/c++ but without the corresponding library
support that this now requires. This is a temporary hack that should be
deleted within a few weeks. In this case we will use the existing
gperf/groff one last time around for the early stage1 bootstrap. (This
isn't so bad, because we were unconditionally using the host one before)


# 97435 28-May-2002 peter

Put on peril sensitive sunglasses and turn C++ stuff back on.


# 97382 28-May-2002 ru

Fixed the world breakage caused by my last commit.
NOMAN is defined when building bootstrap-tools.

Submitted by: jhay


# 97354 27-May-2002 ru

Bootstrap makewhatis(1).


# 97279 25-May-2002 ru

Move elf2aout to usr.sbin/.

Approved by: jake


# 96995 20-May-2002 ru

Bootstrap elf2aout(1) for sparc64; used to build sys/boot/sparc64/boot1.


# 96868 18-May-2002 obrien

Back out rev 1.278. Seems we grew a getconf(1) that requires it.


# 96867 18-May-2002 obrien

Remove local patch that crept in.


# 96829 17-May-2002 obrien

Don't build gperf.


# 96719 16-May-2002 markm

Remove the perl bits from the build.


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


# 96668 15-May-2002 ru

Rename `includes' to `buildincludes'.
Rename `incsinstall' to `installincludes'.
Make `includes' a -j safe shortcut for `buildincludes' + `installincludes'.
`buildincludes' and `installincludes' are SUBDIR friendly, if run directly.


# 96568 14-May-2002 ru

Restore comment that got lost in revision 1.265.


# 96565 14-May-2002 ru

Do not run `includes' and `incsinstall' in parallel.

Spotted by: jhay

Parallel worlds and releases should be working again.


# 96462 12-May-2002 ru

Added new bsd.incs.mk which handles installing of header files
via INCS. Implemented INCSLINKS (equivalent to SYMLINKS) to
handle symlinking include files. Allow for multiple groups of
include files to be installed, with the powerful INCSGROUPS knob.
Documentation to follow.

Added standard `includes' and `incsinstall' targets, use them
in Makefile.inc1. Headers from the following makefiles were
not installed before (during `includes' in Makefile.inc1):

kerberos5/lib/libtelnet/Makefile
lib/libbz2/Makefile
lib/libdevinfo/Makefile
lib/libform/Makefile
lib/libisc/Makefile
lib/libmenu/Makefile
lib/libmilter/Makefile
lib/libpanel/Makefile

Replaced all `beforeinstall' targets for installing includes
with the INCS stuff.

Renamed INCDIR to INCSDIR, for consistency with FILES and SCRIPTS,
and for compatibility with NetBSD. Similarly for INCOWN, INCGRP,
and INCMODE.

Consistently use INCLUDEDIR instead of /usr/include.

gnu/lib/libstdc++/Makefile and gnu/lib/libsupc++/Makefile changes
were only lightly tested due to the missing contrib/libstdc++-v3.
I fully tested the pre-WIP_GCC31 version of this patch with the
contrib/libstdc++.295 stuff.

These changes have been tested on i386 with the -DNO_WERROR "make
world" and "make release".


# 96450 12-May-2002 obrien

Quiet the peanut gallary and back out magical "breakage".


# 96304 09-May-2002 obrien

Turn off groff and gperf -- they will not compile with the in-tree Gcc 3.1.


# 96271 09-May-2002 des

Add rpcgen to the bootstrap tools.


# 96270 09-May-2002 obrien

`beforeinstall' w/the csu bits is a nop.


# 96230 08-May-2002 obrien

Build our native CSU bits before the compiler-specific ones.
This helps in the compiler build.


# 96150 07-May-2002 obrien

Make NO_CXX, really mean NO_CXX.


# 95830 30-Apr-2002 bde

Sorted the directories in the rule for the includes target as much as
possible.


# 95793 30-Apr-2002 ru

Milestone #2 in cross-arch make releases. They now work!

You need to set TARGET_ARCH and possibly TARGET, the same
way you normally do it for a cross build(7).

Renamed `distribworld' to a more natutal `distributeworld'.

Put pwd_mkdb(8) under ${INSTALLTMP}; for `distributeworld'.


# 95792 30-Apr-2002 ru

Back out part of the revision 1.261: "etc" indeed needs to be
last for "distribute" to succeed -- the "make makedb" part of
the etc/Makefile:distribution target should be the last thing
made.


# 95781 30-Apr-2002 ru

Make crunchide(1) a cross-tool; needed for cross-arch "make release".
Note that a.out is only supported for the non-cross i386 case.


# 95730 29-Apr-2002 ru

Parallel "make release" fixes.


# 95509 26-Apr-2002 ru

Milestone #1 in cross-arch make releases.

Do not install games and profiled libraries to the ${CHROOTDIR}
with the initial installworld.

Eliminate the need in the second installworld. For that, make sure
_everything_ is built in the "world" environment, using the right
tool chain.

Added SUBDIR_OVERRIDE helper stuff to Makefile.inc1. Split the
buildworld process into stages, and skip some stages when
SUBDIR_OVERRIDE is set (used to build crypto, krb4, and krb5
dists).

Added NO_MAKEDB_RUN knob to Makefile.inc1 to avoid running
makewhatis(1) at the end of installworld (used when making crypto,
krb4, and krb5 dists).

In release/scripts/doFS.sh, ensure that the correct boot blocks are
used.

Moved the creation of the "crypto" dist from release.5 to
release.2.

In release.3 and doMFSKERN, build kernels in the "world"
environment. KERNELS now means "additional" kernels, GENERIC is
always built.

Ensure we build crunched binaries in the "world" environment.
Obfuscate release/Makefile some more (WMAKEENV) to achieve this.

Inline createBOOTMFS target.

Use already built GENERIC kernel modules to augment mfsfd's
/stand/modules. GC doMODULES as such.

Assorted fixes:

Get rid of the "afterdistribute" target by moving the single use
of it from sys/Makefile to etc/Makefile's "distribute".

Makefile.inc1: apparently "etc" no longer needs to be last for
"distribute" to succeed.

gnu/usr.bin/perl/library/Makefile.inc: do not override the
"install" and "distribute" targets, do it the "canonical" way.

release/scripts/{man,cat}pages-make.sh: make sure Perl manpages and
catpages appear in the right dists. Note that because Perl does
not respect the MANBUILDCAT (and NOMAN), this results in a loss of
/usr/share/perl/man/cat* empty directories. This will be fixed
soon.

Turn MAKE_KERBEROS4 into a plain boolean variable (if it is set it
means "make KerberosIV"), as documented in the make.conf(5)
manpage. Most of the userland makefiles did not test it for "YES"
anyway.

XXX Should specialized kerberized libpam versions be included into
the krb4 and krb5 dists? (libpam.a would be incorrect anyway if
both krb4 and krb5 dists were choosen.)

Make sure "games" dist is made before "catpages", otherwise games
catpages settle in the wrong dist.

Fast build machine provided by: Igor Kucherenko <kivvy@sunbay.com>


# 95146 20-Apr-2002 gshapiro

Despite the fact that it is documented in the handbook, the release notes,
and UPDATING and has been posted to both freebsd-current and
freebsd-stable, users are still not adding the required smmsp user and
group before doing an installworld. Therefore, don't let users do an
installworld unless they have followed directions.

Add a new installcheck Makefile target which installworld runs before
actually starting the installation. This target can be used by other parts
of userland as well. The first addition to the target is to check for the
smmsp user and group if NO_SENDMAIL isn't defined.

Others may add checks to this target as they see fit.

MFC after: 1 week


# 94852 16-Apr-2002 ru

Sort _startup_libs, _prebuild_libs, and _generic_libs lists alphabetically.

Submitted by: bde, ru


# 94851 16-Apr-2002 ru

Keep up with lib/Makefile,v 1.64 (uhh).


# 94771 15-Apr-2002 des

Fix incorrect ordering in previous commit.


# 94750 15-Apr-2002 des

Add libypclnt to the prebuild library list, and record its dependency on
librpcsvc.


# 94579 13-Apr-2002 des

Add libypclnt to the includes target.


# 94541 12-Apr-2002 ru

Add a tool (and the first application of it) that could be used
to automate building of libraries.

Prodded by: bde


# 94432 11-Apr-2002 ru

I now don't seem to be able to reproduce the -DNOCLEAN buildworld
breakage with ioctl.c. The .depend file should track dependencies
just fine, and the worst we can have is to miss new ioctls.

But I still think it's a good idea to have -DNOCLEAN build produce
the same ioctl.c as it would without -DNOCLEAN.

Prodded for a long time by: bde


# 94431 11-Apr-2002 ru

Don't special case i386/pc98, replace it with the smarter logic
of setting ${TARGET} -- make it default to ${MACHINE} if we are
not cross-building, and ${TARGET_ARCH} otherwise.

Set MAKEOBJDIREPREFIX based on ${TARGET}, not on ${TARGET_ARCH}.
This is useful if you want to cross-build pc98 worlds on i386.


# 94221 08-Apr-2002 ru

Avoid cleaning modules twice in `buildkernel'.


# 94172 08-Apr-2002 ru

Bootstrap xargs(1) -- sys/conf/kmod.mk uses the new -J option.

PR: bin/36747


# 93759 04-Apr-2002 ru

Unbreak buildworld after include/Makefile,v 1.167 commit.


# 93589 01-Apr-2002 joe

Back out lots of the last commit that was committed by accident.
(It's my test rig for some CVSUP,SUP code).

Spotted by: Michael G. Petry <petry@NetMasters.Com>


# 93550 01-Apr-2002 joe

Install libusbhid.h during 'make includes'.

Requested by: jhb
MFC after: 3 days


# 93229 26-Mar-2002 ru

Install sys/security/lomac/*.h to /usr/include/security/lomac/.

Install sys/<arch>/include/pc/*.h to /usr/include/machine/pc/.

PR: docs/29534

Install sys/netatm/*/*.h to /usr/include/netatm/*/.

Don't install compatibility symlinks for <machine/soundcard.h>
and <machine/joystick.h>. Three years is enough to be aware of
the change, and these weren't visible in the SHARED=symlinks
case.

Back out include/Makefile,v 1.160 that was a null change anyway
due to the bug in the path, and we now don't want to install
these headers because they would otherwise be invisible in the
SHARED=symlinks case.

Don't install IPFILTER headers. Userland utilities fetch them
directly, and they were not visible in the SHARED=symlinks case.

Resurrect SHARED=symlinks in Makefile.inc1.

PR: bin/28002

Prodded by: bde
MFC after: 2 weeks


# 92813 20-Mar-2002 ru

Make lint(1) a cross-tool.

(See commit log for usr.bin/xlint/Makefile,v 1.11 for what was wrong
with enabling build of lint libraries in rev. 1.12.)

This fixes cross-arch compiles (running binaries for a different arch
when generating lint.7 and lint libraries) and cross-branch compiles
(4.x -> 5.0 buildworld should be working again).


# 92777 20-Mar-2002 ru

Fixed the NO_PERL braino.


# 92452 16-Mar-2002 markm

Update for Perl 5.6.1


# 92410 16-Mar-2002 markm

Allow the use of NO_PERL as well as NOPERL. The latter is going to
be removed.


# 91733 06-Mar-2002 obrien

1-true-AWK has a build-tool target.


# 91011 21-Feb-2002 ru

Obviate the need to set the COMPILER_PATH and LIBRARY_PATH in Makefile.inc1
to pick up the correct cross-tools (the compiler executables and binutils)
and special linker files (crt*.o). This is now controlled by a single knob,
TOOLS_PREFIX, when building cross-tools.

Fixed regression in Makefile.inc1,v 1.203 (-nostdinc). This clobbered target
architecture's CFLAGS with building host's CPUTYPE setting in /etc/make.conf,
and had a nice but nasty side effect of exposing some (normally hidden) bugs
in system headers.

(Attempt to move the "-nostdinc -I..." part of CFLAGS into the new CINCLUDES
(modeled after a similar CXXINCLUDES) eventually failed because hard-coding
${WORLDTMP}/usr/include to be the first in the include list does not always
work, e.g. lib/libbind.)

Compensate the -nostdinc removal by making cpp(1) built in the cross-tools
stage to not look for <> header files in the building host's /usr/include
(already committed as gnu/usr.bin/cc/cc_tools/freebsd-native.h, revisions
1.10-1.12, STANDARD_INCLUDE_DIR).

: $ /usr/obj/usr/src/i386/usr/bin/cpp -v /dev/null
:
: Before:
:
: #include <...> search starts here:
: /usr/obj/usr/src/i386/usr/include
: /usr/include
: End of search list.
:
: After:
:
: #include <...> search starts here:
: /usr/obj/usr/src/i386/usr/include
: /usr/obj/usr/src/i386/usr/include

(Disabling the use of GCC_INCLUDE_DIR in the FREEBSD_NATIVE case would fix
the duplicate above.)

Get rid of the (now unneeded) -I${DESTDIR}/usr/include magic in bsd.prog.mk
and bsd.lib.mk. Finish the removal of LDDESTDIR in bsd.lib.mk,v 1.55 -- we
no longer have users of it.

The required changes to gcc were already committed as contrib/gcc.295/gcc.c,
revisions 1.23 and 1.24.

Basically, this allows for the changes above plus makes gcc(1) persistent
about path configuration, whether it's configured as a native or a cross
compiler:

: $ /usr/obj/usr/src/i386/usr/bin/cc -print-search-dirs
: install: /usr/obj/usr/src/i386/usr/libexec/(null)
: programs: /usr/obj/usr/src/i386/usr/libexec/elf/:/usr/obj/usr/src/i386/usr/libexec/
: libraries: /usr/obj/usr/src/i386/usr/lib/
:
: $ /usr/obj/alpha/usr/src/i386/usr/bin/cc -print-search-dirs
: install: /usr/obj/alpha/usr/src/i386/usr/libexec/(null)
: programs: /usr/obj/alpha/usr/src/i386/usr/libexec/elf/:/usr/obj/alpha/usr/src/i386/usr/libexec/
: libraries: /usr/obj/alpha/usr/src/i386/usr/lib/

Reviewed by: bde, obrien


# 90655 14-Feb-2002 ru

The previous fix for broken -DMAKE_KERBEROS5 world was incomplete.
Finish it by adding kerberos5/lib/libvers to the build-tools list.

(I didn't notice it before because I tested my fix in a -DNOCLEAN
environment, and static libc.a was already in ${WORLDTMP}/usr/lib,
and libvers's make-print-version build tool used it for linking.)

Spotted by: John Indra <maverick@office.naver.co.id>


# 90534 11-Feb-2002 ru

Fixed -DMAKE_KERBEROS5 world breakage in kerberos5/lib/libroken
(make-roken is a build tool). This bug was hiding itself after
a just fixed bug in cross-linker (binutuils/ld/Makefile,v 1.20).

The bug was fatal for cross builds; for example, an alpha binary
(make-roken) was attempted to be run on i386.

Added make-roken to the list of build-tools in libasn1. It only
worked because another build tool needs make-roken implicitly:

(build-tools: asn1_compile: print_version.o: roken.h: make-roken).

Spotted by: nectar


# 90405 08-Feb-2002 ru

Now that cross-tools ld(1) has been fixed to look for dynamic
dependencies in the correct place, record the fact that -lssh
depends on -lcrypto and -lz.

Removed false dependencies on -lz (except ssh(1) and sshd(8)).
Removed false dependencies on -lcrypto and -lutil for scp(1).

Reviewed by: markm


# 90402 08-Feb-2002 ru

FreeBSD 4.1 bootstrapping aid (setproctitle(3) is in -lutil).

This backs out (sort of) delta 1.18 to perl/miniperl/Makefile.
Update to the ld(1) comment by peter in this revision:

ld(1) built as part of the cross-tools stage of buildworld has
been fixed to look for dynamic dependencies in the right place,
${WORLDTMP}/usr/lib, effective binutils/ld/Makefile,v 1.20.

Approved by: markm


# 88575 28-Dec-2001 paul

gnu/libexec has gone so remove it from the most targets.


# 88450 23-Dec-2001 jedgar

Specify the full path to mktemp


# 88324 20-Dec-2001 jedgar

Use a more secure method of creating the temporary
install directory.


# 87803 13-Dec-2001 imp

Move NO_WERROR from CROSSENV to BMAKE. In CROSSENV it disables it for
the entire build. We only want it for the bootstrap process.

Submitted by: ru


# 87775 12-Dec-2001 imp

Add NO_WERROR to the cross building environment so that we do not bail on
warnings generated by earlier versions of the compilers when bootstrapping.

Also a minor formatting nit in the tools list.

Reviewed by: markm


# 87660 11-Dec-2001 phantom

Get rid of unsed since rev 1.109 of lib/Makefile WANT_CSRG_LIBM define.
Also replace internal make variable _libm with hardcoded path to lib/msun

Reviewed by: bde


# 87436 06-Dec-2001 jhb

Just to be pedantic and more aesthetically pleasing, move the secure/
top-level subdirectory prior to share/ so that the top-level directories
are processed in alphabetical order.


# 86609 19-Nov-2001 obrien

Add the CVS knob so it may be overridden (or have options added).

Submitted by: Andrea Campi <andrea@webcom.it>


# 86449 16-Nov-2001 matusita

Don't cleandir also if MODULES_WITH_WORLD.

MFC after: 3 days


# 86388 15-Nov-2001 matusita

Typo fix (my test version doesn't have this...)


# 86387 15-Nov-2001 matusita

Run "make cleandir" if NO_MODULES are set, or there is no sys/modules
directory. Previous commit breaks buildkernel if NO_MODULES was set.
Sorry...

Noticed by: mike


# 86353 14-Nov-2001 matusita

"make cleandir" before building a kernel and modules.

This will hopefully fix the recent 'I cannot compile linux module with
buildworld' problem. MFC will come shortly.

Submitted by: imura@ryu16.org


# 86323 13-Nov-2001 matusita

Set full-path of cvsup.

In src/Makefile rev 1.232, environment variable PATH is set explicitly
to /sbin:/bin:/usr/sbin:/usr/bin. As a result, binaries located on
non-standard path cannot be executed without full-path (it's the change
of this revision).

However, cvsup is not in our base system -- you lose if you try to
"make update" without setting SUP in make.conf or command line argument.
I think it is safe to assume that cvsup is located at /usr/local/bin,
and it would help other people who first try to do "make update".

PR: 31932
MFC after: 1 day


# 85924 02-Nov-2001 obrien

Bring Gawk back. There just isn't any other POSIX compliant AWK out there.
The biggest thing missing from Bell-Labs AWK is the character class regexes.


# 85804 01-Nov-2001 obrien

Add 'awk' to the build-tools, so that the small utility used to build
one of the source files is made for the host, not target.


# 85468 25-Oct-2001 ru

Fix cross-building further.

Introduce ${TARGET} defaulting to ${MACHINE} which should be set to
whatever your target ${MACHINE} is, and use that with world-related
stages. That is, to build pc98 on alpha, one now needs to set both
TARGET_ARCH=i386 and TARGET=pc98.

The scope of ${TARGET} is limited to Makefile.inc1 and cross-tools.

In particular, this change was tested to fix:

1. Cross building of "alpha" on i386. The breakage was introduced
by rev. 1.10 to sbin/i386/Makefile (missing <machine/cronyx.h>).

2. Descending into machine-specific subdirs for a different arch.
Previously, sbin/i386 and usr.sbin/boot0cfg were descended into
when cross-building "alpha" or pc98 on i386.

3. Fixes pc98 cross-building which was horribly broken, caused by
not setting MACHINE correctly (most ${MACHINE} == pc98 checking
Makefiles put -DPC98 to CFLAGS).


# 84136 29-Sep-2001 ru

Fix cross-building, etc:

1. To cross-build, one now needs to set TARGET_ARCH, and not the
MACHINE_ARCH. MACHINE_ARCH should never be changed manually!

2. Initialize DESTDIR= explicitly for bootstrap-tools, build-tools,
and cross-tools stages. This fixes broken header and library
dependencies problem. We build them in the host environment,
and obviously want them to depend on host headers and libraries.
The problem with broken header dependencies for bootstrap-tools
and cross-tools was already partially solved (see BOOTSTRAPPING
tests in bsd.prog.mk and bsd.lib.mk), but it was still there for
build-tools if the user ran "make world DESTDIR=/foo". Also,
for all of these stages, the library dependencies were broken
because of how bsd.libnames.mk define DPADD members.

We still provide a glue to install bootstrap- and cross-tools
under the ${WORLDTMP}.

Removed PATH overrides for bootstrap-, build-, and cross-tools
stages. There is just no reason why we would need to override
it, and the hacks to clean up the ${WORLDTMP} in the -DNOCLEAN
case are no longer needed with fixes from this step.

That is, we now never use ${WORLDTMP} headers and libraries,
and we don't use any ${WORLDTMP} installed binaries during
these stages. Again, these stages depend solely on the host
environment, including compiler, headers, and libraries.

3. Moved "miniperl" back from cross-tools (it has nothing to do
with a cross-compiler) to build-tools where it belongs. The
change from step 1 let to do this. Also, to make this work,
build-tools targets of "cc_tools" and "miniperl" were modified
to call "depend". Here follow the detailed explanations.

There are two categories of build tools, for now. In the first
category there are "cc_tools" and "miniperl". They occupy the
whole (sub)directory, and nothing needs to be done in this
subdirectory later during the "all" stage. They are also
constructed using system makefiles. We must build the .depend
early in the build-tools stage because:

1) They use (and depend on) the host environment.

2) If we don't do this in build-tools, the "depend" stage of
buildworld will do this for us; wrong library and header
dependencies will be recorded (DESTDIR=${WORLDTMP}) and,
what's worse, the "all" stage may then clobber the
build-architecture format tools (that we built in the
build-tools stage) with the target-architecture format
ones, breaking cross build.

In the second category there are all other build-tools. They
share their directory with the "main" module that needs them
in the "all" stage, and they don't show up themselves in the
.depend file. The portion of this fix was already committed
in gnu/usr.bin/cc/cc_tools/Makefile,v 1.52.

4. "libperl" is no longer a build tool, and "miniperl" is the
stand-alone application. I had to make this change because
build-tools and "all" stages share the same object directory.
Without this change, if we cross compile, libperl.a is first
built for the build architecture during the build-tools stage
(for the purposes of immediate linkage with "miniperl").
Later on, the "all" stage sees this library as up-to-date,
and doesn't rebuild it. The effect is that the wrong format
static libperl library is installed with installworld.

5. Fixed "includes" to install secure/lib/libtelnet headers if
required.

Reviewed by: bde


# 83925 25-Sep-2001 ru

Removed touch(1) from the list of installworld tools that
was added in previous revision for no apparent reason.

Submitted by: bde


# 83721 20-Sep-2001 markm

Add which(1) the stuff that we need early on. The perl build needs it
to find miniperl.


# 83570 17-Sep-2001 ru

Run the `bootstrap-tools' and `cross-tools' stages with BOOTSTRAPPING
flag defined. This replaces the WORLD flag that got lost in revision
1.96.


# 82491 29-Aug-2001 bde

Fixed world breakage. mkdir was not copied to ${INSTALLTMP}, but it is
used by src/include/Makefile in the SHARED=symlinks case.


# 82416 27-Aug-2001 paul

Change the name of KRNLDEFDIR to KERNCONFDIR.

Suggested by Bruce, since the latter is more acceptable for a variable
that is externally visible.

Fix a style nit with a long line.


# 82362 26-Aug-2001 paul

Add a variable KRNLDEFDIR that specifies where to find the kernel
config files.

It defaults to KRNLCONFDIR.


# 82354 26-Aug-2001 markm

More libss removal.


# 82353 26-Aug-2001 markm

Adjust dependancies; now that a PAM module (pam_unix) can change
NIS passwords, libpam needs rpc dependancies.


# 81920 19-Aug-2001 kris

Say goodbye to libss, which somehow managed to crouch hidden in the tree
for long after it was used.


# 81845 17-Aug-2001 obrien

Use a build-tool to create the .mgc files.

Submitted by: ru (partial)
Obtained from: NetBSD (basic idea)
Reviewed by: bde, ru


# 81133 04-Aug-2001 tmm

Add some features to libdevstat, and overhaul the interface a bit:

1.) prefix all functions in the library with devstat_ (compatability
functions are available for all functions that were chaned in an
incompatible way, but are deprecated).
2.) Add a pointer to a kvm_t as the first argument to functions that
used to get their information via sysctl; they behave the same
as before when NULL is passed as this argument, otherwise, the
information is obtained via libkvm using the supplied handle.
3.) Add a new function, devstat_compute_statistics(), that is intended
to replace the old compute_stats() function. It offers more
statistics data, and has a more flexible interface.

libdevstat does now require libkvm; a library depedency is added, so
that libkvm only needs to be explicitely specified for statically linked
programs.
The library major version number is bumped.

Submitted by: Sergey A. Osokin <osa@freebsd.org.ru>, ken (3)
Reviewed by: ken


# 80530 29-Jul-2001 dd

Enable the new libmp in the build, and disable libgmp and its
henchmen.


# 79470 09-Jul-2001 markm

Axe S/Key. OPIE is the true and faithful successor.


# 78197 13-Jun-2001 peter

Part 2 of gensetdefs de-orbit burn. linker sets are now self contained
for ELF, see src/sys/linker_set.h log.


# 78173 13-Jun-2001 ru

WARNS= is fully functional again.


# 78085 11-Jun-2001 ru

- Restore -nostdinc that got lost in rev.1.105; we don't
want host headers during `buildworld'.

- During `buildworld', install headers in a "copy" mode
until we decide what to do with the (currently broken)
SHARED=symlinks.

- Temporarily run `buildworld' with -DNO_WERROR, which
effectively disabled the -Werror bit of recently added
WARNS=X feature. This is required because adding the
-nostdinc bit back revealed bugs in some header files
that were hiding after not using -nostdinc.
It is unclear currently how exactly (and why) -nostdinc
affects gcc(1) warnings.


# 77347 28-May-2001 ru

Bootstrap install(1).


# 76581 14-May-2001 ru

Add kbdcontrol(1) to bootstrap-tools.
This fixes the upgrade path breakage in usr.sbin/sysinstall.


# 76048 26-Apr-2001 asmodai

Remove xlint from build-tools. This needs to be fixed in a different way.


# 75921 24-Apr-2001 asmodai

Add usr.bin/xlint to build-tools.


# 75896 24-Apr-2001 gshapiro

${MAKEOBJDIRPREFIX}/usr/src/i386/usr/include/isc was being created as a plain
file during the bootstrapping process of a buildworld and contained the
last isc include file to be installed. It was meant to be a directory for
the isc include files.


# 75656 18-Apr-2001 ru

Add groff to bootstrap-tools.


# 74840 27-Mar-2001 ken

Rewrite of the CAM error recovery code.

Some of the major changes include:

- The SCSI error handling portion of cam_periph_error() has
been broken out into a number of subfunctions to better
modularize the code that handles the hierarchy of SCSI errors.
As a result, the code is now much easier to read.

- String handling and error printing has been significantly
revamped. We now use sbufs to do string formatting instead
of using printfs (for the kernel) and snprintf/strncat (for
userland) as before.

There is a new catchall error printing routine,
cam_error_print() and its string-based counterpart,
cam_error_string() that allow the kernel and userland
applications to pass in a CCB and have errors printed out
properly, whether or not they're SCSI errors. Among other
things, this helped eliminate a fair amount of duplicate code
in camcontrol.

We now print out more information than before, including
the CAM status and SCSI status and the error recovery action
taken to remedy the problem.

- sbufs are now available in userland, via libsbuf. This
change was necessary since most of the error printing code
is shared between libcam and the kernel.

- A new transfer settings interface is included in this checkin.
This code is #ifdef'ed out, and is primarily intended to aid
discussion with HBA driver authors on the final form the
interface should take. There is example code in the ahc(4)
driver that implements the HBA driver side of the new
interface. The new transfer settings code won't be enabled
until we're ready to switch all HBA drivers over to the new
interface.

src/Makefile.inc1,
lib/Makefile: Add libsbuf. It must be built before libcam,
since libcam uses sbuf routines.

libcam/Makefile: libcam now depends on libsbuf.

libsbuf/Makefile: Add a makefile for libsbuf. This pulls in the
sbuf sources from sys/kern.

bsd.libnames.mk: Add LIBSBUF.

camcontrol/Makefile: Add -lsbuf. Since camcontrol is statically
linked, we can't depend on the dynamic linker
to pull in libsbuf.

camcontrol.c: Use cam_error_print() instead of checking for
CAM_SCSI_STATUS_ERROR on every failed CCB.

sbuf.9: Change the prototypes for sbuf_cat() and
sbuf_cpy() so that the source string is now a
const char *. This is more in line wth the
standard system string functions, and helps
eliminate warnings when dealing with a const
source buffer.

Fix a typo.

cam.c: Add description strings for the various CAM
error status values, as well as routines to
look up those strings.

Add new cam_error_string() and
cam_error_print() routines for userland and
the kernel.

cam.h: Add a new CAM flag, CAM_RETRY_SELTO.

Add enumerated types for the various options
available with cam_error_print() and
cam_error_string().

cam_ccb.h: Add new transfer negotiation structures/types.

Change inq_len in the ccb_getdev structure to
be "reserved". This field has never been
filled in, and will be removed when we next
bump the CAM version.

cam_debug.h: Fix typo.

cam_periph.c: Modularize cam_periph_error(). The SCSI error
handling part of cam_periph_error() is now
in camperiphscsistatuserror() and
camperiphscsisenseerror().

In cam_periph_lock(), increase the reference
count on the periph while we wait for our lock
attempt to succeed so that the periph won't go
away while we're sleeping.

cam_xpt.c: Add new transfer negotiation code. (ifdefed
out)

Add a new function, xpt_path_string(). This
is a string/sbuf analog to xpt_print_path().

scsi_all.c: Revamp string handing and error printing code.
We now use sbufs for much of the string
formatting code. More of that code is shared
between userland the kernel.

scsi_all.h: Get rid of SS_TURSTART, it wasn't terribly
useful in the first place.

Add a new error action, SS_REQSENSE. (Send a
request sense and then retry the command.)
This is useful when the controller hasn't
performed autosense for some reason.

Change the default actions around a bit.

scsi_cd.c,
scsi_da.c,
scsi_pt.c,
scsi_ses.c: SF_RETRY_SELTO -> CAM_RETRY_SELTO. Selection
timeouts shouldn't be covered by a sense flag.

scsi_pass.[ch]: SF_RETRY_SELTO -> CAM_RETRY_SELTO.

Get rid of the last vestiges of a read/write
interface.

libkern/bsearch.c,
sys/libkern.h,
conf/files: Add bsearch.c, which is needed for some of the
new table lookup routines.

aic7xxx_freebsd.c: Define AHC_NEW_TRAN_SETTINGS if
CAM_NEW_TRAN_CODE is defined.

sbuf.h,
subr_sbuf.c: Add the appropriate #ifdefs so sbufs can
compile and run in userland.

Change sbuf_printf() to use vsnprintf()
instead of kvprintf(), which is only available
in the kernel.

Change the source string for sbuf_cpy() and
sbuf_cat() to be a const char *.

Add __BEGIN_DECLS and __END_DECLS around
function prototypes since they're now exported
to userland.

kdump/mkioctls: Include stdio.h before cam.h since cam.h now
includes a function with a FILE * argument.

Submitted by: gibbs (mostly)
Reviewed by: jdp, marcel (libsbuf makefile changes)
Reviewed by: des (sbuf changes)
Reviewed by: ken


# 74812 26-Mar-2001 ru

Add missing NOSECURE check for `includes' target.

Reviewed by: markm


# 74645 22-Mar-2001 ru

Enhancement to 1.99 -> 1.100.
Avoid EPERM from ln(1) in a different (proper) way.


# 73349 02-Mar-2001 ru

setlocale(3) has been fixed to match POSIX standard:
LC_ALL takes precedence over other LC_* envariables.


# 72924 22-Feb-2001 jhb

MACHINE_ARCH is the target arch to crossbuild to, not TARGET_ARCH.

Requested by: marcel


# 72859 22-Feb-2001 jhb

Document TARGET_ARCH.


# 72558 17-Feb-2001 bde

Removed some garbage (genassym(8) and its infrastructure).


# 72493 14-Feb-2001 markm

Previous commit should have read:

Fix "make world" for those folks building world with KRB5


# 72492 14-Feb-2001 markm

Fix make world.


# 71419 23-Jan-2001 peter

Provide backwards compatable recognition of ${KERNEL}. You should be
able to use KERNEL= again with buildkernel, but it will point you at
KERNCONF= and press on regardless.


# 71401 22-Jan-2001 peter

Sigh, I thought we still had the rm -rf objdir stuff in make world, which
would have taken care of the possibility of buildkernel crossing over
from one binutils set to another. Back out the part about turning off
'make clean' if the 'make depend' is still active, but add a NO_KERNELCLEAN
target instead that works like NOCLEAN but just for the kernel.


# 71397 22-Jan-2001 peter

Use 'make clean' instead of 'config -r', and only if the 'depend' step has
been skipped. We went to a lot of trouble to make the 'blow away' stage
unneeded, and it has not been needed for quite some time.


# 71366 22-Jan-2001 imp

As threatened in hackers@ on Friday, obviate the need for a buildworld
to preceed a buildkernel.

The buildworld is still required when upgrading across major releases,
across binutil upgrades and when config changes version. If
buildkernel breaks, and you haven't done a buildworld, then do not
complain unless you do a buildworld and it still breaks.


# 71364 22-Jan-2001 peter

Using "KERNEL" for buildkernel was a very very bad mistake. $KERNEL is
already used by the kernel makefiles themselves, and this leads to a lot
of trouble when people put "KERNEL=MYKERNEL" in make.conf. Bite the bullet
and change it to KERNCONF instead, before it gets too far entrenched.

The kernel Makefiles use ${KERNEL} as the name of what to install the
kernel as, eg: /boot/${KERNEL}/kernel or /${KERNEL}. This leads to much
unhappiness with things like /LOCAL instead of /kernel. buildkernel is
severely limited as it is only useful directly after a buildworld.

Reviewed by: jhb


# 71355 21-Jan-2001 jkh

Also add some timing information for kernel builds so that it's
easy to do "make world kernel |grep -e '^>>>'" and get a complete
event log.


# 71238 19-Jan-2001 peter

Create a build-tools target for sysinstall and rtermcap. This is still
not right because rtermcap would be reading the *host* termcap, not
from the termcap in the src tree. Besides, /usr/sbin/sysinstall
(not the crunched one in /stand) should use the runtime termcap
not the precompiled set.


# 70334 24-Dec-2000 kato

Removed pc98-hack of aout tools.


# 69556 03-Dec-2000 marcel

Fix cross-building once again.

Forgotten by: ache


# 69115 24-Nov-2000 sheldonh

(forced commit)

More detail describing why chmod is installed into ${INSTALLTMP} since
rev 1.176:

We use Perl's MakeMaker-generated makefiles to install Perl. Since we
can't hack up MakeMaker's MM_Unix.pm to suit our build, we need chmod
to be around until we use our own makefiles to install perl.

PR: gnu/22025


# 68987 21-Nov-2000 marcel

Fix release, broken by the perl cross-build fixes.

The distribute target is basicly the same as an install. For
perl, this means that miniperl is needed. Since miniperl is
only present in the object directory, we need to make sure
the path is set correctly. To do this, we have make release
use a new distribworld target that sets the path before doing
a make distribute.


# 68927 20-Nov-2000 marcel

Fix cross-building.

o Move building libperl and miniperl from build-tools to
cross-tools. libperl uses MACHINE_ARCH to determine the
right configuration, which doesn't match the build
machine when cross-building if they are built as build-
tools.
o Since miniperl needs to be built as a cross-tool, it
needs to be installed under /usr/obj so that it can be
used (cross-tools have a special object directory to
avoid build conflicts. As a downside, you can't easily
run cross-tools from their object directory). Remove
the install and distribute override targets. To avoid
having miniperl installed by installworld, remove it
from SUBDIR.
o We can't pickup miniperl from the object directory but
since it's installed, depend on PATH. This is save,
because the makefiles are run with a known path.
o Build libperl again as part of the library target. A
_libperl variable existed, but it was never defined.
o Add chmod to the list of saved tools, because perl
conditionally uses it during install.

The bootstrap-tools and cross-tools targets are modified to
avoid building profiled and shared libraries. While here,
have these targets build static binaries instead of shared
binaries.

Approved by: markm


# 68586 10-Nov-2000 obrien

libgcc now needs to be built earlier in the build.

Submitted by: jdp


# 67811 28-Oct-2000 obrien

* Bring back the guts of crt{i,n}.S. This allows C++ exceptions to work
when using the egcs and gcc-devel ports, along with GCC built from stock
public FSF sources. With out this change, FreeBSD will be removed from
the list of systems GCC 3.0 must be evaluated on before release. With
the effort some of us put into getting FreeBSD on this list, we should
not turn this effort into a waste, else we might not be worth fighting
for in the future. (note that Alpha and IA-64 versions of crt{i,n}.S
are needed)

* Switch from our own crt{begin,in} to those created from GCC's crtstuff.c.
This will allow us to switch to DWARF2 exceptions in the future, along with
staying in sync with any future GCC requirements.

* Break out our ELF branding bits into a seperate file. Currently this
is now included by our crt1.c files (since this functionality was part of
our native crtbegin.c). Later crtbrand.o will be merged in the creation
of crti.o.


# 67547 25-Oct-2000 jkoshy

Fail the 'buildkernel' target if not even one of the specified kernel configuration
files was found.

Reviewed by: obrien


# 67050 12-Oct-2000 obrien

Number the stages in the documentation to match what is printed out when
running.


# 66018 18-Sep-2000 gibbs

This is really gross.

If a user decides to forego a make depend during "make buildkernel",
they should get what they deserve if no previous make depend has
been run for that kernel. Instead, the build process includes
special instructions to unconditionally rebuild aicasm. When aicasm
moved to its own directory, this hack broke.

Correct the hack until a get buy off on killing it.


# 66005 17-Sep-2000 imp

Add reinstallkernel target. Does same thing as installkernel, but
executes the reinstall target rather than the install target that
installkernel does.


# 65636 09-Sep-2000 des

Include libfetch in the includes target.


# 65629 09-Sep-2000 peter

USA_RESIDENT is no longer required for buildworld, do not force it.


# 65387 03-Sep-2000 obrien

Allow one to specify what the installed kernel's name is by setting
"INSTKERNNAME".

Reviewed by: marcel


# 64605 13-Aug-2000 joe

Define SUPHOST. If this is set a '-h ${SUPHOST}' is added to the
SUPFLAGS when a 'make update' is run. This means that the supfile
doesn't need to be edited because the -h will override the
CHANGE_THIS.FreeBSD.org host.


# 64340 07-Aug-2000 sheldonh

Make the update target consistent; both ports and doc are updated
if their SUPFILE variables are defined _and_ NO_PORTSUPDATE and
NO_DOCUPDATE respectively are not defined.

Previously, only ports was updated and there was no way to prevent
this without undefining its SUPFILE variable.

PR: 17514
Reported by: Udo Erdelhoff <ue@nathan.ruhr.de>


# 64178 03-Aug-2000 marcel

Fix buildkernel and installkernel when KERNEL is defined in
/etc/make.conf.

PR: 20325
Submitted by: Johan Karlsson <k@numeri.campus.luth.se>


# 63783 23-Jul-2000 marcel

Argh... mtree has been removed from the bootstrap-tools. In that
case we need to save it in installworld. That latter I forgot...

Pointy hat: me


# 63779 23-Jul-2000 marcel

Name all kernels 'kernel'. This fixes the incompatible behaviour
of the buildkernel and installkernel targets where the kernel
was called after the config name.

While here, fix the brokenness of the installkernel target. It
used to use ${IMAKEENV}, but since that has a very restricted
PATH, it couldn't find make(1). Use ${CROSSENV} instead.


# 63777 23-Jul-2000 marcel

Remove mtree for bootstrap-tools. The -L switch change has been
backed out.


# 63762 22-Jul-2000 marcel

Don't save cp(1) in installworld. Its use has been replaced by
a use of install.


# 63592 20-Jul-2000 marcel

Add awk and wc to the list of copied binaries for the installworld
target. These are needed by liloldr.

Found by: make release


# 63560 19-Jul-2000 marcel

Add cp(1) to the list of binaries we need to save. The cp(1) command
is used by the installation of ld-elf.so when an existing version
exists.


# 63544 19-Jul-2000 marcel

Don't save install-info. We already have that built. We'll use
the one we built anyway.


# 63487 19-Jul-2000 marcel

Save any binaries we use by installworld, so that we won't use the
binaries we just installed. This allows a future upgrade target to
install a new system without intermediate reboots and also
prevents conflicts for parallel make runs where we might exec a
binary that's being installed at the same time.


# 63366 17-Jul-2000 ache

Move mtree to bootstrap-tools and add PATH=${TMPPATH} to IMAKEENV to pick it


# 63360 17-Jul-2000 ache

Add mtree to cross-tools to make it updated for new -L option
It must solve make world breakage


# 62419 02-Jul-2000 markm

Perl's version number needs to change.


# 62083 25-Jun-2000 markm

Rearrange Perl's build priority; it needs to get made earlier.


# 61703 15-Jun-2000 brian

Add -DNO_KERNELDEPEND and -DNO_KERNELCONFIG

Not reviewed by: sheldonh


# 61448 09-Jun-2000 brian

Set KERNEL=${INSTALLKERNEL} doing a make install in /sys/conf


# 60026 05-May-2000 nyan

GENERIC98 is removed.


# 59713 27-Apr-2000 wollman

Make gperf be a bootstrap-tool, since we now depend on features of
the specific version in -current.

Approved in principle by: marcel


# 59705 27-Apr-2000 wollman

Revert my changes to make gperf a build-tool; that was the wrong thing.
All builds had been broken; now just upgrade builds are until I or
someone else can figure out the Right Thing.


# 59699 27-Apr-2000 wollman

Add gperf(1) to build tools. It should have been one before, but
gcc does not depend on version-specific gperf behavior (yet).


# 59680 27-Apr-2000 sheldonh

Create ${KRNLOBJDIR} before running config(8), since config(8) does
not create required parent directories of the kernel compile
directory specified with its -d option.


# 59310 17-Apr-2000 kris

Unbreak make world (libpam depends on libopie)


# 58832 30-Mar-2000 sheldonh

Fix the buildkernel and installkernel targets for the case where
KERNEL specifies multiple kernels.

PR: 17536
Submitted by: Johan Karlsson <k@numeri.campus.luth.se>


# 58769 29-Mar-2000 ru

Get rid of "sticky" files when updating sources with cvs(1).

Approved by: peter


# 57841 09-Mar-2000 kris

Buildworld fixes for NO_OPENSSH and NO_OPENSSL

Approved by: jkh


# 57575 28-Feb-2000 markm

A lot of tools need to be built before compilation proper can happen.


# 57457 24-Feb-2000 markm

We have a new world order in libraries.

Goodbye libdes; Welcome libcrypto.


# 57353 20-Feb-2000 jkh

Docfix: Note krb5 flags.

PR: 16818
Submitted by: martti.kuparinen@nomadiclab.com


# 56972 03-Feb-2000 ru

Now that bsd.lib.mk has PRECIOUSLIB feature back (rev 1.91),
we need -DNOFSCHG at stage 4 (building libraries) to support
non-root buildworlds.

Reviewed by: <buildworld@current.freebsd.org>


# 56909 30-Jan-2000 obrien

The readline includes handling was moved down a level in
src/gnu/libreadline -- reflect that change here.

Ok'ed by: JKH


# 56798 29-Jan-2000 imp

Back out 1.134. It works from 3.3R, but breaks cross compilation for too
little gain. I'll work out the issues after 4.0R is out.


# 56769 28-Jan-2000 imp

Remove Fortran from build tools. It isn't needed to build the system
and costs us an extra 2% to build it for no reason. It may break
building cross compilation environments for fortran, but that isn't
officially supported at this time anyway (also, the % of our user base
that would use that is < .001% imho). This does't break fortran (it
is built again later anyway).

Reviewed by: obrien
Tested by: make buildworld and make buildworld -DNOCLEAN


# 56551 24-Jan-2000 markm

Build Kerberos5 if the correct macro is set. This is not for the
faint_hearted; serious hackers only!


# 56263 19-Jan-2000 kris

Require USA_RESIDENT to be 'NO' or 'YES' if building secure/

Reviewed by: marcel


# 56235 18-Jan-2000 ru

Finally resolve the texinfo issue by moving it
from the cross-tools to the bootstrap-tools.

Requested by: bde, marcel


# 56221 18-Jan-2000 ru

For some reason compiler should be the last in the list of cross-tools.
Unbroke the world by moving gnu/usr.bin/texinfo before gnu/usr.bin/cc.

Submitted by: Jim Bloom <bloom@acm.org>


# 56195 17-Jan-2000 ru

Add gnu/usr.bin/texinfo to the list of cross-tools.
We need an up-to-date `makeinfo' and `install-info'
at `world' and `install' stages.

Pointed out by: bde


# 55856 12-Jan-2000 marcel

Add gross hack to work around bogus dependency information created
by gnu/usr.bin/cc/cc_tools/Makefile. This bug is painfully visible
when making buildworld with -DNOCLEAN. This work around is beyond
dirty...


# 55842 12-Jan-2000 marcel

Fix broken installkernel target. Don't use the WMAKE context to
install; use the IMAKE context.

Reported by: sheldonh


# 55827 11-Jan-2000 marcel

Revert gratuitous change in rev. 1.123 which broke building world
as non-root.

Breakage caused by: green


# 55817 11-Jan-2000 obrien

Remove Bison from "bootstrap-tools" as we don't use it to build anything
in /usr/src/ anymore.


# 55816 11-Jan-2000 green

This is the second half of unbreaking the world build. Add a -DNOHTML
corollary for -DNOINFO and -DNOMAN. I'll fix this properly (add
specific HTML doc magic) in the .mk files later; right now, just
unbreak the world.


# 55804 11-Jan-2000 marcel

Add the -r flag to CONFIGARGS instead of assigning to it so that
it's more easy to build a kernel with debugging information.

Suggested by: sheldonh


# 55676 09-Jan-2000 marcel

Add a buildkernel and an installkernel target. With these targets
users can more easily upgrade.

buildworld now makes usr.sbin/config in bootstrap-tools so that
when you first make buildworld, buildkernel will use config(8)
from the temp. world tree (and of course also the compiler).

Which kernel to built is determined by the KERNEL variable. You
can have as many kernels listed as you like. When a config file
exists for the given MACHINE it will be built. When KERNEL has
not been defined it will be set to "GENERIC GENERIC98".

The first valid kernel named in the list will be used by the
installkernel target.

When NOCLEAN is defined the kernel object directory is *not*
removed by config first. This is in line with normal buildworld
behaviour.

The buildkernel target makes aicasm in sys/dev/aic7xxx first and
unconditionally. This hack allows us to cross-build kernels and
can go away when the problem is solved in a structural way.


# 55417 04-Jan-2000 marcel

Add btxld to the list of cross-tools on machines that don't have it
natively (ie non-i386 architectures).


# 55266 30-Dec-1999 markm

Grrrr... This was supoosed to go with the commit to kerberosIV/.../libroken's
Makefile.

Fix make world by building appropriate build-tools.

Submitted by: marcel


# 55221 29-Dec-1999 obrien

Restore changes I spammed.


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


# 55218 29-Dec-1999 kris

Only make beforeinstall in libcrypto/libssl if they actually exist. I haven't
imported these on Freefall yet for the reasons previously explained.

Noticed by: asami


# 55216 29-Dec-1999 asami

Oops, the previous commit was bogus. I shouldn't commit something without
reading all my mail.

I still don't understand why this was was committed on freefall before
the libcrypto and libssl subdirectories were imported on freefall though.


# 55214 29-Dec-1999 asami

Typo (libcrypto -> libcrypt).


# 55191 28-Dec-1999 kris

Build openssl properly during make world.


# 55060 23-Dec-1999 marcel

Don't build caesar as a tool. fortune(6) doesn't depend on it
anymore. Update comments and variable names as well to wipe out any
traces that may confuse people in the future.


# 55025 23-Dec-1999 marcel

Revert previous commit, and

o Add genassym to the list of cross-tools
o Remove sh hashing work-around, we don't need it anymore
o Clean more directories in WORLDTMP when NOCLEAN is specified

The sh hashing work-around is not needed anymore, because we don't
trigger the bug anymore.

When NOCLEAN is not defined, we wipe out the complete WORLDTMP,
including the object directories of the tools we have built. When
NOCLEAN is defined, we remove anything that we install anyway, which
is usr/bin, usr/games, usr/include, usr/lib and usr/sbin.


# 55011 22-Dec-1999 ache

Add ${WORLDTMP}/sbin to ${STRICTTMPPATH} - sysctl not found otherwise


# 54875 20-Dec-1999 marcel

o make SHARED=symlinks a caller defined instead of a callee defined
property. This fixes the includes target when DESTDIR is empty.
o Do not make build-tools for f771 when NO_FORTRAN is defined.
o Add new build stage. See below.
o Change banners so that staging information is displayed.

The addition of the build-tools target broke the upgrade path because
we couldn't make use of previously built tools that were made for
compatibility reasons. Doing so would also result in the cross-compiler
being used and that is exactly what had to be avoided.

This is solved by designating the bootstrap-tools stage for building
anything that is needed for compatibility only and to create a new
stage (started after the build-tools stage) that handles cross-tools
building. We now have the following stages:
1. bootstrap-tools (for compatibility issues only)
2. build-tools
3. cross-tools (what it says)
4. world
5. install

Stages 1-4 (inclusive) are handled by buildworld.
Stage 5 is handled by installworld.

Any more stages and I'll join Nik in his quest for the
holy grail^W^Wworld :-)


# 54736 17-Dec-1999 marcel

Don't build usr.sbin/pcvt/keycap on anything other than i386 when
building the libraries target. pcvt is i386 specific.


# 54684 16-Dec-1999 marcel

o Add games/caesar to the list of bootstrap-tools so that a
buildworld doesn't break because the host doesn't have any
games installed,
o Add a new build stage: TMAKE. TMAKE builds all the build-tools
targets in the respective makefiles. Note that these targets
don't use the bootstrap tools,
o Add elf2exe to the bootstrap-tools when cross-building Alpha on
other platforms,
o Add ${WORLDTMP}/usr/games to TMPPATH,
o Remove ${WORLDTMP}/usr/bin even when NOCLEAN is defined. This
prevents using any bootstrap-tools previously installed. Most
importantly, it prevents using the cross-compiler when we still
need the native compiler.

The current stages are BMAKE, TMAKE, XMAKE and IMAKE in that order.
BMAKE builds bootstrap-tools that either solve compatibility problems
or are needed as cross-tools,
TMAKE builds the support tools necessary by some parts in the source
tree and also performs the cleandir and par-obj targets,
XMAKE builds the includes, libraries and everything (resp.), and
IMAKE installs the world. This stage needs further work if it's to be
used to install -current over -stable for example.

This is the last major update towards cross-building.


# 54663 15-Dec-1999 billf

It is possible for someone to want to 'make update' wht SUPFILE not defined
while SUPFILE1 or PORTSSUPFILE are defined.


# 54525 12-Dec-1999 marcel

Add colldef to the list of tools. It's needed on older systems.


# 54523 12-Dec-1999 marcel

o Add gensetdefs to the list of tools.
o Don't set CFLAGS in the bootstrap env. It is very likely to be
overridden my any CFLAGS setting in /etc/make.conf. Setting it
here is almost useless. So far, it doesn't seem necessary.


# 54470 12-Dec-1999 nyan

Build a.out tools if MACHINE_ARCH == i386 and MACHINE == pc98.
The boot2 for pc98 is still a.out program.

I made the original patch, and many problems were fixed by Marcel Moolenaar.


# 54445 11-Dec-1999 marcel

Don't add MACHINE_ARCH to MAKEOBJDIRPREFIX when not cross-building.
This should fix make release.

Reported by: jhay, phk


# 54408 10-Dec-1999 marcel

o Don't make games/fortune/strfile if games does not exist or NOGAMES
has been defined.
o Make libraries before making depend.


# 54398 10-Dec-1999 marcel

Remove installworld related settings that I had as a safety-net and
for development. :-/


# 54392 10-Dec-1999 marcel

More cross-building related changes:
o Build tools before doing anything in or with the object tree.
o Tools don't use the object tree any more, but have there object
tree located in the temp. world.
o Use the proper make env. for cleaning and building the object tree.
o Don't create kernel include subdirectories in the temp. world. These
are removed later on and replaced by symlinks.
o Change the layout of the object tree:

The temp. world now is /usr/obj/${MACHINE_ARCH}${.CURDIR}/${BUILD_ARCH}.
/usr/obj can be set/changed by using MAKEOBJDIRPREFIX, and {.CURDIR}
obviously depends on where the source tree is located. MACHINE_ARCH
is the arch. for which the world is to be build and BUILD_ARCH is the
arch. on which we are building.

The object tree now is /usr/obj/${MACHINE_ARCH}${.CURDIR}.

This allows concurrent cross-builds and allows the object tree to be
shared on different archs., each doing the same cross-build. This of
course assumes that the output on Alpha (for example) is the same as
the output of an Alpha cross-build on i386 (for example).

The use of NOCLEAN is is still dangerous, but should be usable in many
more situations than before. It should now be possible to safely
restart an interrupted build with NOCLEAN without side-effects. Because
the tools don't share the object tree with the normal (cross-build), no
tools have to be rebuild.


# 54368 09-Dec-1999 marcel

Don't make gdb, objc and f77 when building tools.


# 54365 09-Dec-1999 marcel

Make sure the links to the source tree end up in the source tree.


# 54352 09-Dec-1999 marcel

o Add usr/lib/compat/aout to the temp world. This is needed by release.
o If you can't beat them, join them: use symlinks to populate the obj
tree. This avoids using mtree.


# 54311 08-Dec-1999 marcel

Restore the upgrade path from -stable to -current and prepare for
non-root cross-building.

o Makefile.inc0 is not used anymore.
o The legacy aout build has been removed.
o Selectively build tools *before* building includes/libraries.
o Avoid using mtree to populate the obj tree.


# 53700 25-Nov-1999 julian

Place netgraph entry into alphabetical position
along with the misplaced entries that it was next to.


# 53653 24-Nov-1999 obrien

Revert to rev 1.91. Revs 1.9{2,3} were causing problems for people with
pre-Aug 4.0-CURRENT worlds and those with pre-GCC 2.95.2 worlds.

The problem with pre-Aug worlds is the installed Byacc and Bison doesn't
have necessary changes to compile either GCC 2.95 or EGCS 1.1.x.

The problem with pre-GCC 2.95 worlds is libgcc is built with the wrong
compiler. See rev 1.17 of src/gnu/lib/libgcc/Makefile (which used to live
in src/gnu/usr.bin/cc/libgcc) + commit messge for details of the requirements.


# 53640 23-Nov-1999 marcel

Fix some bugs and make some policy changes.

o Send libmytinfo back to the afterlife. It was revived by mistake,
o Make gnu/lib/libgcc before making lib/libpam. This dependency has
been overlooked in constructing the list,
o make depend before make all. It's by using make depend that the
dependency was found in the first place and we need it to prevent
cleaning everything up before we start,
o Don't specify -DNOINFO -DNOMAN for the libraries target. Let the
target handle it. We can do away with a single run over the libs
if we make everything while we're there and only install the
libraries in the object tree.


# 53521 21-Nov-1999 marcel

Build tools against the host's includes and libraries. Also, don't
build make(1) twice and merge the bootstrap-libraries and libraries
targets.

This change solves the bug where build-tools, compiled against the
includes and libraries built from the sources failed to run on the
host, as was the case with the sigset_t change. With this update, a
buildworld will fail if the tools won't compile on the host. This
is solved in further commits where backward compatibility of the
tools is enlarged.

The libraries target has been fixed. The libraries are now build in
the proper order, satisfying the dependencies. The comment is updated
to reflect this.

The linux module and netboot have been removed from the list of tools.
More to follow.

Reviewed by: bde, imp


# 53186 15-Nov-1999 marcel

Remove CROSS_MAKE_FLAGS.


# 53152 14-Nov-1999 marcel

${MACHINE} -> ${MACHINE_ARCH}

All Makefiles now use MACHINE_ARCH for the target architecture.
Unification is required for cross-building.

Tags added to:
sys/boot/Makefile
sys/boot/arc/loader/Makefile
sys/kern/Makefile
usr.bin/cpp/Makefile
usr.bin/gcore/Makefile
usr.bin/truss/Makefile

usr.bin/gcore/Makefile:
fixed typo: MACHINDE -> MACHINE_ARCH


# 52489 25-Oct-1999 julian

install netgraph.h a bit earlier.

Submitted by: Boris Popov <bp@butya.kz>


# 52228 14-Oct-1999 bp

Make libncp actually compiled.

Reviewed by: mdodd


# 51934 04-Oct-1999 peter

Add libkvm to the includes target.


# 51482 20-Sep-1999 markm

Minor (but important) comment change.


# 50900 04-Sep-1999 bde

FIxed disorder in the comments about library build order.


# 50690 31-Aug-1999 markm

Further preparation for tn3270's demise.


# 50640 30-Aug-1999 peter

Update for ncurses5 aftermath..


# 50479 27-Aug-1999 peter

$Id$ -> $FreeBSD$


# 49551 08-Aug-1999 jdp

Remove f2c-related stuff from the "includes" target and from a
comment. Fixes broken make world.


# 49445 05-Aug-1999 jdp

Add usr.sbin/elf2exe to the build-tools target on the Alpha. This
fixes the make buildworld breakage in sys/boot/arc/loader.


# 48654 07-Jul-1999 imp

Per requests from the community, commit rudimentary cross compilation
support. I've been building world with these changes for months w/o
ill effect. I've also managed to build the cross tool chain for MIPS
with these patches.

Please note that the extent to which these patches work is largely
dictated by how well our tool chains support the cross compilation.
Building alpha binaries on i386 doesn't work. Supposedly building
i386 binaries on alpha does work, but I've not verified it with these
patches, however.


# 47736 04-Jun-1999 billf

${.CURDIR} doesn't have to be /usr/src, especially in a cvs checkout. Make
sure what is reported to the user is accurate.

Stolen From: mharo


# 47651 01-Jun-1999 billf

'make update' in the ports directory.


# 46365 03-May-1999 obrien

Document NO_FORTRAN.


# 46314 02-May-1999 markm

Perl is moving up a maintenance version.

While I'm here - reorder crypto directories to better support
dependancies. Perl and others like it better that way.


# 45852 20-Apr-1999 jkoshy

Change 'exists()' constructs to refer to directories in ${.CURDIR}.
Tested with a make world.

PR: misc/4395
Submitted by: J Wunsch
Reviewed by: bde


# 45608 11-Apr-1999 des

Don't build man page indices if NOMAN is defined.

PR: bin/11035
Submitted by: Chris Costello <chris@holly.dyndns.org>


# 45352 05-Apr-1999 obrien

Clean up "lib-tools:", folding libgcc into the rest.


# 45310 04-Apr-1999 obrien

Remove a lingering reference to libg++.


# 45278 03-Apr-1999 obrien

Missed a gnu/usr.bin/cc/libgcc.


# 45261 03-Apr-1999 obrien

EGCS will have some new includes that need to be installed.


# 45248 02-Apr-1999 peter

Add libwrap to includes target, otherwise <tcpd.h> doesn't get installed
in time to build inetd. (If you already have /usr/include/tcpd.h, the
build doesn't fail. This mainly affects upgrades and 'make world' from
systems more than a few weeks old)


# 45172 31-Mar-1999 obrien

An earlier version of Rev 1.66 was reviewed by bde and the issues were
hashed out with his gracious help.


# 45170 31-Mar-1999 obrien

* Deal with libgcc's move from gnu/usr.bin/cc to gnu/lib.
Move was necessary as libgcc should be built with the freshly built
compiler and thus we must wait until the freshly built bits have been
installed somewhere so we can use them. libgcc presence in gnu/usr.bin/cc/
gets in the way of building the new compiler. We could have either
cd'ed to specific directories w/in gnu/usr.bin/cc/ and built and installed
individual bits, or move libgcc out of the way and let our normal subdir
building process work.

* Don't build libgcc in "bootstrap-libraries:" target it should not be
assumed the currently installed compiler can correctly build libgcc.
(as is the case for g++ 2.7.2 and EGCS' libgcc)


# 44355 28-Feb-1999 imp

The legacy boot stuff is available only on i386, not all architectures
which aren't the alpha. Test for MACHINE_ARCH == i386 rather than
MACHINE_ARCH != alpha.


# 44313 27-Feb-1999 jkh

Add a new flag, "WORLD", for telling certain tools that they're
being build as part of a bootstrap.


# 43994 14-Feb-1999 des

Ignore errors from chflags. This makes it possible to make installworld
with DESTDIR set to an NFS-mounted file system.


# 43285 27-Jan-1999 jkh

further refine the upgrade process.


# 43094 23-Jan-1999 markm

More broken crypt(3) backout.


# 43061 22-Jan-1999 brandon

One more fix to remove secure/lib/libcrypt from the build (both
cases are now handled in lib/libcrypt, depending upon if
secure/lib/libcrypt/crypt-des.c exists)

Reviewed by: Mark Murray


# 42885 20-Jan-1999 markm

Help for Perl5 to make in cross-build environments.
Submitted by: Eivind Eklund


# 42371 07-Jan-1999 eivind

Don't do the ldconfig rescan if DESTDIR is set.


# 42364 07-Jan-1999 peter

``Disable'' a.out 'make world', as per flag day notification on current and
committers. A 'make aout-to-elf' is strongly encouraged. This isn't quite
the end of the line for people who have a real problem with updating yet,
but we've got to get this over and done with. Yes, it's bound to be a
couple of bumpy couple of days.


# 42343 06-Jan-1999 bde

Removed the weak spam of ${DESTDIR}/usr/include in the bootstrap
target (see the previous log message). This works for bootstrapping
from 2.2.7. It won't work for bootstrapping from 2.1.x, but that
fails due to include problems earlier.


# 42285 04-Jan-1999 bde

Backed out rev.1.49. It broke bootstrapping from 2.1.5 2.2.7 and
probably other versions by spamming ${DESTDIR}/usr/include in much
the same way as `make includes'.

Details for 2.2.7: the bootstrap target has always done a weak spam
of ${DESTDIR}/usr/include; we depend on it not installing any
significant anachronisms (it probably shouldn't touch the headers
at all; however, we may be depending on it for things like the
renaming of ts_nsec to ts_sec in <sys/time.h>). Rev.1.49 strengthens
the spam to everything in src/include. For 2.2.7, this is not
immediately fatal. However, the `make all' step in src/includes
is not followed by a `make clean' step, so new rpc headers are not
generated after we've bootstrapped rpcgen. This causes a fatal
error much later when the old (generated) rpc headers are used with
the current headers (sys/types.h and/or the non-generated rpc
headers).

Details for 2.1.x: the bug is immediately fatal. It gives definition
of errno that is not supported by 2.1.x's libc. The weak spam in the
restored version avoids this problem by not installing errno.h.
(Bootstrapping from 2.1.5 actually breaks much earlier.)

I think the header problems supposedly fixed by rev.1.49 were caused
by using NOCLEAN and having the build fall over when the weakly
spammed headers are active. Minor differences in the layout will
then cause the .depend files to point to nonexistent headers. It
is a feature for symlinks like errno.h -> sys/errno.h to not exist
early.

The other change in rev.1.49 breaks building obj directories if NOCLEAN
is set. It is only safe for _re_building with NOCLEAN set.


# 42223 01-Jan-1999 peter

Reconnect pcvt hooks..

Reviewed by: core


# 42181 30-Dec-1998 bde

Backed out previous commit. It depends on a.out utilities and libraries
somehow being available even on pure elf systems.


# 42180 30-Dec-1998 bde

Fixed bootstrapping of /usr/mdec/boot[12].


# 42128 28-Dec-1998 peter

Dip my toes into the fire and zap the leftover lkm hooks.. It seems they
try and recurse if the lkm dir exists for some reason but there isn't any
Makefile there. (eg: stray files prevented cvs update -P from removing the
empty dirs)


# 42103 27-Dec-1998 phk

follow up to:
Pre 3.0 branch cleanup casualty #4: pcvt


# 41973 21-Dec-1998 dillon

Elf (and a.out?) rebuild of bootstrap tools appeared to be broken due to
some tools requiring header files, such as errno.h, that are softlinks.
The mini installation of include files in Makefile.inc1 wasn't doing
the job, so it has been ripped out and replaced with a true make of the
/usr/src/include/ directory (make all and make beforeinstall). I think
the original idea was to save time by not installing unnecessary header
files, but it doesn't really save all that much time.

Also, I have moved a NOCLEAN conditional to cover rebuilding the object
tree 'Rebuilding the ${OBJFORMAT} obj tree' section. This may or may not
be correct but it appears to function properly. If it is not correct we
need to find another way to avoid scanning every single file in the
entire source hierarchy for make restarts.


# 41722 13-Dec-1998 dillon

Grr. removed. backed-out. sorry!


# 41720 13-Dec-1998 dillon

This needs to be commited now to fix usbd for make world


# 41384 28-Nov-1998 jkh

Revert previous commit; write idea, wrong way.


# 41380 28-Nov-1998 jkh

Remove netboot from build order; it's not ready for the limelight
and probably doesn't belong there anyway.


# 41258 20-Nov-1998 jdp

Make sure libskey is built before libpam. It is required for one of
the PAM modules.

Fix the comments describing the PAM dependencies to be consistent
with other related comments.


# 41232 17-Nov-1998 jdp

Add libpam to the "includes" and "libraries" targets.

Build the ordered list of libraries in a variable "_libs" before
building any of them. This eliminates a little bit of duplicated
code. More importantly, it makes it easier to include or exclude
libraries with .if constructs, because the list can be built in
multiple steps using "+=".


# 41217 17-Nov-1998 jdp

Note the requirement that libcrypt be built before libkrb.


# 41166 15-Nov-1998 jb

Remove share/info from build tools because it breaks the build when
INFODIR is set.


# 41122 12-Nov-1998 jdp

Add libradius and libtacplus to the includes target. Note their
dependence on libmd.


# 40928 05-Nov-1998 msmith

Typo , -> .

Submitted by: Shaun Courtney <shaun@emma.eng.uct.ac.za>


# 40922 05-Nov-1998 peter

sys/modules/linux has a build-tools target


# 40902 04-Nov-1998 peter

Add usr.bin/gensetdefs to build-tools; it is used for src/sys/modules and
maybe for other things that use linker sets under ELF.


# 40479 17-Oct-1998 bde

Don't add /usr/games to $PATH. Adding it here can only work for the
`make world' case, and only made a difference for the evil NOTOOLS case
of `make world' since games tools are installed in ${TOOLROOT}/usr/bin
if they are built, but the PR was for normal builds. This is fixed
in rev.1.14 of src/games/fortune/datfiles/Makefile.

PR: 7936


# 40450 16-Oct-1998 bde

Fixed missing directories in the libraries target:
- in the elf case, csu must be built and installed before any shared
libraries. It wasn't, but we usually used a stale version that
happened to work. E.g., in the !NOTOOLS case we used the version
built and installed by the bootstrap-libraries target. Only cross
building was completely broken.
- the shared libmd must be built and installed before any shared
libraries that link to it. It wasn't, but we sometimes used a stale
version that happened to work, as above. For elf, this caused
bogus linkage of the target shared libatm and libopie with the host
static libmd. It isn't clear what this actually breaks, except for
cross compiling. For aout, the shared libmd is not built at all, so
all shared libraries linked to libmd may be broken. The linker
reports them by spewing RRS warnings.

Note that building src/lib early and building subdirs of src/lib in
the correct order in src/lib/Makefile doesn't help, since the subdirs
are all built before any are installed.

Fixed bitrot in the comments about the ordering requirements.


# 40298 13-Oct-1998 rnordier

Include btxld in build-tools only for i386.


# 40283 13-Oct-1998 jkh

Conditionalise boot block building on i386.


# 40234 11-Oct-1998 rnordier

Remove sys/boot from the install as well.


# 40233 11-Oct-1998 rnordier

In src/Makefile.inc1:
Remove /sys/boot from legacy-build.
Add btxld to build-tools.
In src/sys/Makefile:
Add /sys/boot for i386 ELF.

I'm still not sure why the new boot code was being built along with the
legacy stuff, which meant a completely wrong default environment for it.

This may well still be the wrong way to go about this, but it can't work
all that much worse than it has been.


# 40208 11-Oct-1998 peter

Comment about libm and libmd being needed for some libraries.
Prompted by: bde

Also. Don't build & install legacy lkm's when NOLKM has been set.
Otherwise it gets built in the src tree rather than obj, because the
previous 'make obj' at the start of legacy-build does respect NOLKM.


# 40193 10-Oct-1998 jkh

Move OBJFORMAT hack to the correct line; what can I say, it was very
late. :)


# 40175 10-Oct-1998 kato

PC-98 uses different boot code from IBM-PC. So, MACHINE is used
instead of MACHINE_ARCH.

Submitted by: Takahashi Yoshihiro <nyan@wyvern.cc.kogakuin.ac.jp>


# 40174 10-Oct-1998 jkh

Quick commit to see if I can't fix Robert's i386/boot problem in one line.
If this doesn't work, we'll try something else.


# 40167 10-Oct-1998 jkh

Don't chain makes with &&; apparently this is evil for parallelism.
According to: bde


# 40135 09-Oct-1998 jkh

Clean up the boot targets a bit.
Suggested by: jdp


# 40058 08-Oct-1998 jkh

Make both types of boot targets.


# 39971 05-Oct-1998 msmith

Add libstand to the includes target.


# 39663 25-Sep-1998 sos

Backout my last commit.
Find another way to get the LKM's rebuild.


# 39637 25-Sep-1998 sos

Build the LKM's both on aout & ELF systems.

Reviewed by: jkh


# 39593 23-Sep-1998 obrien

Add printf(1) to the list of early-build tools.
(needed to build Amd, and causing the -jN crowd problems w/o being here)
((I will revisit the usage of printf(1) in building Amd at a later time))


# 39586 23-Sep-1998 markm

Complete the Perl NOSHARED repair. I had not ensured that the shared library
was constructed early enough, so perl was linking against the static lib.
This was breaking perl under ELF, as perl could not load shared objects
(in fact would dump core).


# 39542 21-Sep-1998 jb

Remove the bootstrap-rtld target which wasn't needed.

Install the rest of the legacy libraries (like libgcc.a, libl.a).

Add games to the user's path to avoid the temptation for people to
hack paths to unsuitable tools.


# 39423 17-Sep-1998 andreas

Purely cosmetic but useful change.
Make output of make world more readable for grep. Now a
grep '>>>' world.log
shows you the single stages through which the bootstrap
process went as discussed on -current. Could be used to
debug the bootstrap mechanism in case of trouble more
easily. Would be fine if any further @echo "..." messages
containing a description, what's going on, could use the
new format: @echo ">>> ..."


# 39412 17-Sep-1998 phk

Two patches from the HARP people:

Various Makefile related fixes.

-Wformat fixes.

Submitted by: Mike Spengler <mks@networkcs.com>


# 39402 17-Sep-1998 gibbs

libscsi is obsoleted by CAM.


# 39271 15-Sep-1998 phk

(this is an extract from src/share/examples/atm/README)

===================================
HARP | Host ATM Research Platform
===================================

HARP 3

What is this stuff?
-------------------
The Advanced Networking Group (ANG) at the Minnesota Supercomputer Center,
Inc. (MSCI), as part of its work on the MAGIC Gigabit Testbed, developed
the Host ATM Research Platform (HARP) software, which allows IP hosts to
communicate over ATM networks using standard protocols. It is intended to
be a high-quality platform for IP/ATM research.

HARP provides a way for IP hosts to connect to ATM networks. It supports
standard methods of communication using IP over ATM. A host's standard IP
software sends and receives datagrams via a HARP ATM interface. HARP provides
functionality similar to (and typically replaces) vendor-provided ATM device
driver software.

HARP includes full source code, making it possible for researchers to
experiment with different approaches to running IP over ATM. HARP is
self-contained; it requires no other licenses or commercial software packages.

HARP implements support for the IETF Classical IP model for using IP over ATM
networks, including:

o IETF ATMARP address resolution client
o IETF ATMARP address resolution server
o IETF SCSP/ATMARP server
o UNI 3.1 and 3.0 signalling protocols
o Fore Systems's SPANS signalling protocol

What's supported
----------------
The following are supported by HARP 3:

o ATM Host Interfaces
- FORE Systems, Inc. SBA-200 and SBA-200E ATM SBus Adapters
- FORE Systems, Inc. PCA-200E ATM PCI Adapters
- Efficient Networks, Inc. ENI-155p ATM PCI Adapters

o ATM Signalling Protocols
- The ATM Forum UNI 3.1 signalling protocol
- The ATM Forum UNI 3.0 signalling protocol
- The ATM Forum ILMI address registration
- FORE Systems's proprietary SPANS signalling protocol
- Permanent Virtual Channels (PVCs)

o IETF "Classical IP and ARP over ATM" model
- RFC 1483, "Multiprotocol Encapsulation over ATM Adaptation Layer 5"
- RFC 1577, "Classical IP and ARP over ATM"
- RFC 1626, "Default IP MTU for use over ATM AAL5"
- RFC 1755, "ATM Signaling Support for IP over ATM"
- RFC 2225, "Classical IP and ARP over ATM"
- RFC 2334, "Server Cache Synchronization Protocol (SCSP)"
- Internet Draft draft-ietf-ion-scsp-atmarp-00.txt,
"A Distributed ATMARP Service Using SCSP"

o ATM Sockets interface
- The file atm-sockets.txt contains further information

What's not supported
--------------------
The following major features of the above list are not currently supported:

o UNI point-to-multipoint support
o Driver support for Traffic Control/Quality of Service
o SPANS multicast and MPP support
o SPANS signalling using Efficient adapters

This software was developed under the sponsorship of the Defense Advanced
Research Projects Agency (DARPA).

Reviewed (lightly) by: phk
Submitted by: Network Computing Services, Inc.


# 39226 15-Sep-1998 gibbs

Hook up beforeinstall targets for libcam and libdevstat


# 39034 09-Sep-1998 obrien

I don't want to be the only one to use ``cut''. Use ``sed'' instead.


# 39033 09-Sep-1998 obrien

Add ``usr/bin/cut'' to "build-tools" target.
Used in usr.sbin/amd/include/newvers.sh.


# 39027 09-Sep-1998 markm

Remove the NOPERL block to building Perl5.

Perl 5 will rebuild/bootstrap itself next time a make world is done
with this in effect.


# 39018 09-Sep-1998 markm

Add the Perl5 bootstrap tools.


# 38975 09-Sep-1998 markm

Another place to set NOPERL.


# 38857 05-Sep-1998 asami

Remove tcl from /usr/src, according to prior agreement. BTW, tcl-8.0 *is*
a port so there is nothing to be done on that side now.

Approved by: jkh
===
To: "Jordan K. Hubbard" <jkh@time.cdrom.com>
cc: Andreas Klemm <andreas@klemm.gtn.com>, current@freebsd.org
Subject: Re: Make this a relese coordinator decision (was Re: ports-current/packages-current discontinued)
From: David Greenman <dg@root.com>
Date: Sun, 03 Aug 1997 20:23:31 -0700

>decision is, I'll respect it.

Another chance to architect people's principles...I can hardly wait. Seems
quite appropriate for a Sunday - I just need to get one of those collection
plates (and money envelopes) so I can profit, too. :-)
Tcl stays in /usr/src for now, but it needs to be kept up to date; same
for perl. If Jordan doesn't have "setup" (written in tcl) ready for 3.0,
then tcl will be yanked prior to the 3.0 release (and made into a port).
As for the ports tree only supporting the last FreeBSD release, this seems
sensible to me. The "ports" have always been a moving target between releases
and the problem is only going to get worse when we expand to supporting other
processor architectures. In any case, Satoshi is and always has been in charge
of the ports tree and whatever he wants to do with it (within reason :-)) is
his decision.
Does this cover the issue completely? I admit to deleting messages in this
thread with unusual fervor (people have FAR too much time on their hands!).
There's a fair bit of reasoning behind the above, but since everyone is sick
of arguing about this, I'll spare you the analysis.

-DG

David Greenman
Core-team/Principal Architect, The FreeBSD Project


# 38856 05-Sep-1998 jb

Change i386 in a few paths to ${MACHINE} to support MACHINE=pc98.


# 38785 03-Sep-1998 jb

Only run ldconfig if the OBJFORMAT is aout.


# 38721 01-Sep-1998 jb

Force NOMAN and NOINFO on legacy-install as well as legacy build.


# 38715 31-Aug-1998 jb

Add a target to check the consistency of the make OBJFORMAT variable
with the object format determined by objformat. This prevents foot
shooting (a form of boot scooting for hackers?) where local changes
to /etc/make.conf or /etc/make.conf.local try to override OBJFORMAT
in an incomplete way.


# 38711 31-Aug-1998 jb

MACHINE -> MACHINE_ARCH to allow PC98 to define MACHINE=pc98.

Submitted by: Takahashi Yoshihiro <nyan@wyvern.cc.kogakuin.ac.jp>


# 38666 30-Aug-1998 jb

E-day build system changes.

- Moved most of the guts of Makefile to Makefile.inc1 to become the
backend for the build system.
- The new Makefile doesn't suffer from problems including the wrong
sys.mk because it doesn't use anything in there or bsd.own.mk. So,
from now on, the proper build command is just `make world' (or
buildworld).
- The intermediate makefiles called Makefile.inc0 and Makefile.upgrade
fiddle with the OBJFORMAT and MAKEOBJDIRPREFIX variables so that
both aout and elf object trees can coexist. Makefile.upgrade contains
the aout->elf transition build.
- A cross build environment is now very close to reality. Specifying
TOOLDIR, setting OBJFORMAT and MAKEOBJDIRPREFIX allow that.

See the comments in Makefile for more info.