Commit Graph

198 Commits

Author SHA1 Message Date
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
John Baldwin
682d4db4c8 Document TARGET_ARCH. 2001-02-22 08:27:17 +00:00
Bruce Evans
58445af0f8 Removed some garbage (genassym(8) and its infrastructure). 2001-02-17 06:06:14 +00:00
Mark Murray
c1f3d84722 Fix make world. 2001-02-14 19:48:51 +00:00
Peter Wemm
2f74661cc7 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.
2001-01-23 09:52:50 +00:00
Peter Wemm
6d84d742df 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.
2001-01-22 23:29:13 +00:00
Peter Wemm
51dfb94794 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.
2001-01-22 23:10:01 +00:00
Warner Losh
5963db0f2e 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.
2001-01-22 08:07:58 +00:00
Peter Wemm
c1ae5e3dce 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
2001-01-22 07:29:48 +00:00
Jordan K. Hubbard
c80a5c4c6e 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.
2001-01-21 23:44:41 +00:00
Peter Wemm
26379603c0 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.
2001-01-19 09:24:00 +00:00
KATO Takenori
3e530495b9 Removed pc98-hack of aout tools. 2000-12-24 14:58:34 +00:00
Marcel Moolenaar
d6deedefeb Fix cross-building once again.
Forgotten by: ache
2000-12-03 20:29:31 +00:00
Marcel Moolenaar
0a0743b52a 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.
2000-11-21 04:37:30 +00:00
Marcel Moolenaar
ad879ce955 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
2000-11-20 02:17:34 +00:00
David E. O'Brien
cb6f68576a libgcc now needs to be built earlier in the build.
Submitted by:	jdp
2000-11-10 22:02:06 +00:00
David E. O'Brien
ae7c8a2bb8 * 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.
2000-10-28 21:26:48 +00:00
Joseph Koshy
a62264fb74 Fail the 'buildkernel' target if not even one of the specified kernel configuration
files was found.

Reviewed by:	obrien
2000-10-25 04:31:32 +00:00
David E. O'Brien
13387c45eb Number the stages in the documentation to match what is printed out when
running.
2000-10-13 01:19:36 +00:00
Justin T. Gibbs
18ebc2eaa1 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.
2000-09-18 03:35:49 +00:00
Warner Losh
66bea2a025 Add reinstallkernel target. Does same thing as installkernel, but
executes the reinstall target rather than the install target that
installkernel does.
2000-09-17 21:02:58 +00:00
Dag-Erling Smørgrav
a3f02cc072 Include libfetch in the includes target. 2000-09-09 14:37:06 +00:00
Peter Wemm
1b73d196cb USA_RESIDENT is no longer required for buildworld, do not force it. 2000-09-09 04:42:34 +00:00
David E. O'Brien
ae78d52fe5 Allow one to specify what the installed kernel's name is by setting
"INSTKERNNAME".

Reviewed by:	marcel
2000-09-03 02:58:39 +00:00
Josef Karthauser
6fd0f27267 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.
2000-08-13 12:36:40 +00:00
Sheldon Hearn
ef10227633 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>
2000-08-07 14:35:49 +00:00
Marcel Moolenaar
f7ff24ef81 Fix buildkernel and installkernel when KERNEL is defined in
/etc/make.conf.

PR: 20325
Submitted by: Johan Karlsson <k@numeri.campus.luth.se>
2000-08-03 05:52:22 +00:00
Marcel Moolenaar
a5061fba1f 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
2000-07-23 21:30:35 +00:00
Marcel Moolenaar
dce97721ea 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.
2000-07-23 17:38:32 +00:00
Marcel Moolenaar
fa90cca2fc Remove mtree for bootstrap-tools. The -L switch change has been
backed out.
2000-07-23 16:43:03 +00:00
Marcel Moolenaar
a0982e9309 Don't save cp(1) in installworld. Its use has been replaced by
a use of install.
2000-07-23 00:20:56 +00:00
Marcel Moolenaar
eb263e0408 Add awk and wc to the list of copied binaries for the installworld
target. These are needed by liloldr.

Found by: make release
2000-07-20 03:03:23 +00:00
Marcel Moolenaar
39b909dad3 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.
2000-07-19 22:48:52 +00:00
Marcel Moolenaar
2e826432aa Don't save install-info. We already have that built. We'll use
the one we built anyway.
2000-07-19 18:18:21 +00:00
Marcel Moolenaar
767ab900c6 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.
2000-07-19 04:41:59 +00:00
Andrey A. Chernov
7d66a72a06 Move mtree to bootstrap-tools and add PATH=${TMPPATH} to IMAKEENV to pick it 2000-07-18 01:49:05 +00:00
Andrey A. Chernov
199b3e8349 Add mtree to cross-tools to make it updated for new -L option
It must solve make world breakage
2000-07-18 00:21:05 +00:00
Mark Murray
58804eace2 Perl's version number needs to change. 2000-07-02 16:15:03 +00:00
Mark Murray
f307c8a7ed Rearrange Perl's build priority; it needs to get made earlier. 2000-06-25 15:02:18 +00:00
Brian Somers
59bb1d9c7b Add -DNO_KERNELDEPEND and -DNO_KERNELCONFIG
Not reviewed by: sheldonh
2000-06-15 10:00:20 +00:00
Brian Somers
625de7fe92 Set KERNEL=${INSTALLKERNEL} doing a make install in /sys/conf 2000-06-09 10:42:36 +00:00
Yoshihiro Takahashi
a82162d4bb GENERIC98 is removed. 2000-05-05 08:02:15 +00:00