Commit Graph

239 Commits

Author SHA1 Message Date
David E. O'Brien
9c15e38ac2 1-true-AWK has a build-tool target. 2002-03-06 08:24:32 +00:00
Ruslan Ermilov
ea5c0da93b 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
2002-02-21 10:23:41 +00:00
Ruslan Ermilov
7a6051e857 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>
2002-02-14 13:06:52 +00:00
Ruslan Ermilov
19f56da943 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
2002-02-11 16:47:05 +00:00
Ruslan Ermilov
e47a40e7f7 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
2002-02-08 13:42:58 +00:00
Ruslan Ermilov
fac6ec1f62 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
2002-02-08 13:09:08 +00:00
Paul Richards
0f958c273a gnu/libexec has gone so remove it from the most targets. 2001-12-28 11:53:18 +00:00
Chris D. Faulhaber
d235a1a0d7 Specify the full path to mktemp 2001-12-23 22:49:06 +00:00
Chris D. Faulhaber
0525c7eafa Use a more secure method of creating the temporary
install directory.
2001-12-21 01:44:11 +00:00
Warner Losh
2694e8c7f4 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
2001-12-13 17:00:59 +00:00
Warner Losh
68f04dad74 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
2001-12-13 01:37:45 +00:00
Alexey Zelkin
5f4a79e5fe 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
2001-12-11 16:10:26 +00:00
John Baldwin
b69cb6342c 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.
2001-12-06 07:44:47 +00:00
David E. O'Brien
09b50a9891 Add the CVS knob so it may be overridden (or have options added).
Submitted by:	Andrea Campi <andrea@webcom.it>
2001-11-19 17:43:29 +00:00
Makoto Matsushita
b721f69c14 Don't cleandir also if MODULES_WITH_WORLD.
MFC after:	3 days
2001-11-16 03:02:34 +00:00
Makoto Matsushita
acd9c8a8a1 Typo fix (my test version doesn't have this...) 2001-11-15 07:09:00 +00:00
Makoto Matsushita
6a798cfa81 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
2001-11-15 07:04:23 +00:00
Makoto Matsushita
4271dfbcdd "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
2001-11-14 16:48:47 +00:00
Makoto Matsushita
2ec2294625 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
2001-11-13 15:47:40 +00:00
David E. O'Brien
2335a3d70a 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.
2001-11-02 23:48:32 +00:00
David E. O'Brien
491beb71f3 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.
2001-11-01 06:14:42 +00:00
Ruslan Ermilov
444ff633bf 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).
2001-10-25 07:28:55 +00:00
Ruslan Ermilov
4448c79e47 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
2001-09-29 13:17:54 +00:00
Ruslan Ermilov
b4e13f7b2b Removed touch(1) from the list of installworld tools that
was added in previous revision for no apparent reason.

Submitted by:	bde
2001-09-25 12:17:52 +00:00
Mark Murray
9356546b0a Add which(1) the stuff that we need early on. The perl build needs it
to find miniperl.
2001-09-20 12:24:10 +00:00
Ruslan Ermilov
a1e0e968b7 Run the bootstrap-tools' and cross-tools' stages with BOOTSTRAPPING
flag defined.  This replaces the WORLD flag that got lost in revision
1.96.
2001-09-17 11:50:36 +00:00
Bruce Evans
02d4de1533 Fixed world breakage. mkdir was not copied to ${INSTALLTMP}, but it is
used by src/include/Makefile in the SHARED=symlinks case.
2001-08-29 09:11:03 +00:00
Paul Richards
934372e226 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.
2001-08-27 12:01:46 +00:00
Paul Richards
f981dd25d1 Add a variable KRNLDEFDIR that specifies where to find the kernel
config files.

It defaults to KRNLCONFDIR.
2001-08-26 18:39:07 +00:00
Mark Murray
a1a21b0eb7 More libss removal. 2001-08-26 17:47:21 +00:00
Mark Murray
e2e0201cf6 Adjust dependancies; now that a PAM module (pam_unix) can change
NIS passwords, libpam needs rpc dependancies.
2001-08-26 17:45:56 +00:00
Kris Kennaway
4870a3d346 Say goodbye to libss, which somehow managed to crouch hidden in the tree
for long after it was used.
2001-08-19 21:32:52 +00:00
David E. O'Brien
1687fcd346 Use a build-tool to create the .mgc files.
Submitted by:	ru (partial)
Obtained from:	NetBSD (basic idea)
Reviewed by:	bde, ru
2001-08-17 17:21:38 +00:00
Thomas Moestl
c4a5ef6ef3 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
2001-08-04 18:25:48 +00:00
Dima Dorfman
7bd0b86765 Enable the new libmp in the build, and disable libgmp and its
henchmen.
2001-07-29 08:58:22 +00:00
Mark Murray
132463cacb Axe S/Key. OPIE is the true and faithful successor. 2001-07-09 17:49:34 +00:00
Peter Wemm
9488e5f340 Part 2 of gensetdefs de-orbit burn. linker sets are now self contained
for ELF, see src/sys/linker_set.h log.
2001-06-14 01:35:23 +00:00
Ruslan Ermilov
d531238a37 WARNS= is fully functional again. 2001-06-13 15:18:11 +00:00
Ruslan Ermilov
8411c946f5 - 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.
2001-06-11 18:09:08 +00:00
Ruslan Ermilov
3f628ce112 Bootstrap install(1). 2001-05-28 16:54:02 +00:00
Ruslan Ermilov
a24874dccd Add kbdcontrol(1) to bootstrap-tools.
This fixes the upgrade path breakage in usr.sbin/sysinstall.
2001-05-14 17:21:02 +00:00
Jeroen Ruigrok van der Werven
19a271529e Remove xlint from build-tools. This needs to be fixed in a different way. 2001-04-26 17:54:24 +00:00
Jeroen Ruigrok van der Werven
1048d3c9eb Add usr.bin/xlint to build-tools. 2001-04-24 20:19:29 +00:00
Gregory Neil Shapiro
0a51d0d9fd ${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.
2001-04-24 02:57:42 +00:00
Ruslan Ermilov
d8d4bc9ab4 Add groff to bootstrap-tools. 2001-04-18 12:20:28 +00:00
Kenneth D. Merry
3393f8daa3 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
2001-03-27 05:45:52 +00:00
Ruslan Ermilov
aeebb4e76d Add missing NOSECURE check for `includes' target.
Reviewed by:	markm
2001-03-26 12:46:17 +00:00
Ruslan Ermilov
d9d1a7bb94 Enhancement to 1.99 -> 1.100.
Avoid EPERM from ln(1) in a different (proper) way.
2001-03-22 09:54:25 +00:00
Ruslan Ermilov
afcf05e46a setlocale(3) has been fixed to match POSIX standard:
LC_ALL takes precedence over other LC_* envariables.
2001-03-02 16:52:14 +00:00
John Baldwin
7de7569f50 MACHINE_ARCH is the target arch to crossbuild to, not TARGET_ARCH.
Requested by:	marcel
2001-02-22 22:58:24 +00:00