Commit Graph

134 Commits

Author SHA1 Message Date
John Polstra
f92bdbd010 Switch to using ".So" as the extension for PIC object files rather
than ".so".  The old extension conflicted with well-established
naming conventions for dynamically loadable modules.

The "clean" targets continue to remove ".so" files too, to deal with
old systems.
1999-01-09 21:51:00 +00:00
Peter Wemm
c30fe42c78 Flip the kernel default to ELF.. Add a test to try and warn people
that they might be about to blow their feet off if they have not been
reading their mail.  I don't know if or how well this will work, but it's
worth a try.
1999-01-07 06:52:41 +00:00
Mike Smith
3d89c2cdb2 Regrettably, you can't take setdef0.c out of order, or, surprise,
linker sets don't work and thus neither does the kernel.

This should stop being a problem with an improved linker set mechanism in
the pipeline (see the bootloader) but for now this has to stay like this.
1998-12-21 10:29:09 +00:00
Bruce Evans
3d2ffe2196 Fixed building elf kernels without a `make depend' step. The magic
ordering in rev.1.38 was broken by putting setdef0.o before vnode_if.o
in SYSTEM_OBJS.
1998-12-20 16:25:21 +00:00
Warner Losh
f7c9e34bea If there is no .depends file, use the standard ad-hoc way of ensuring
that the generated files are generated before any of the object files.
Also minor cleanup of dependencies in conf/files that I bogusly added
before.

This should fix the requirement that make depend be done starting from
a clean config directory.  If you don't have a clean directory, make
depend is still required if you want the proper .o's to be recompiled.

Reviewed by: bde
1998-12-07 22:36:54 +00:00
Doug Rabson
2f2dcad41b * Change 'struct resource' to 'struct config_resource'.
* Bump config version.
1998-11-15 18:07:35 +00:00
Peter Wemm
3187d896a1 Make a.out kernels kld compatable by default... 1998-11-04 15:27:41 +00:00
Bruce Evans
4af4007dbb Ignore `vector xxxintr' specifications except for checking their syntax.
Interrupt handlers are now configured in drivers.

Didn't update config/SMM.doc.  It doesn't have any i386 examples (not
even `isa').

Bumped CONFIGVERS.  This is not necessary for -current yet, but using
the new config with old system sources gives null pointers for all
vectors.
1998-10-23 17:05:06 +00:00
Peter Wemm
b24d73e14b rm *.so and *.ko in clean as well. 1998-10-10 01:00:56 +00:00
Peter Wemm
6b7a14ce57 Make the ELF kernel build produce a dynamic executable (!). This enables
the in-kernel linker to access the _DYNAMIC data for doing loadable elf
modules.  The alpha kernel is already done this way, I've borrowed some of
the hacks from there.

This is primarily aimed at the 3-stage boot process which is intended to
be able to do pre-loading of kernel modules.

Note that the entry point isn't 0xf0100000 any more, it'll be a little
further on - but this value is stored in the headers.  I don't think this
will be a problem, but I'm sure somebody will tell me if it is. :-)

I'm not sure if btxboot is going to like this, it doesn't do proper ELF
header checking and assumes that there are exactly two program header
entries and that they are both PT_LOAD entries - a bad assumption.
1998-09-30 12:14:39 +00:00
Bruce Evans
5b036e2b3c Fixed missing dependencies of genassym.o, gensetdefs.o and vers.o
on opt_global.h.  This actually matters for genassym.o (it depends
on at least SMP).

Don't undefine KERNEL for compiling genassym.c.  genassym.o really
depends on KERNEL, and the prototype mismatches that required
undefining KERNEL in rev.1.49 no longer exist.

Compile gensetdefs* with the same flags as genassym*.  External
`gen' programs such linux_genassym should also use these flags
(${GEN_CFLAGS}).

Fixed missing dependency generation for gensetdefs.o.  C sources
for external `gen' programs should be added to GEN_CFILES to get
their dependencies generated.

Cleaned up flags definitions and use.  All of ${CFLAGS} is now
passed to mkdep and the assembler (both are actually variants of
${CC} and will ignore the irrelevant flags).
1998-09-21 06:39:11 +00:00
Justin T. Gibbs
79dadba22a Bump config version. 1998-09-15 21:07:07 +00:00
Jordan K. Hubbard
ac80870e0b Decouple genassym flags from CFLAGS.
Submitted by:	jhay
1998-09-14 11:32:17 +00:00
Nicolas Souchu
8afa373cc6 Reviewed by: Doug Rabson
Submitted by:	nsouch
Adding I2C and SMB entries to LINT, CONFIGVERS modified in Makefile.i386
1998-09-03 20:58:34 +00:00
John Birrell
c155091cc8 Change BINFORMAT to KERNFORMAT and add -aout or -elf to the tool
arguments as appropriate. This is necessary because setting OBJFORMAT=aout
in the makefile doesn't get exported to the environment. I wish our
make could do that!
1998-09-01 00:11:02 +00:00
John Birrell
0cdd2a270f Force OBJFORMAT=aout. 1998-08-31 11:43:26 +00:00
Bruce Evans
9478de47f4 Use a relative path to bsd.kern.mk if the relative mk directory exists. 1998-08-24 06:42:26 +00:00
Bruce Evans
a872b9bdd0 Removed historical dependencies on `Makefile'. They had rotted to being
mostly for objects that have the fewest dependencies on `Makefile'
(since they were mostly for utilities and objects generated from *.s
and these don't depend on profiling flags).

Give an explicit rule for building vnode_if.o.  This fixes building
it without ${PROF}.

Use .ORDER instead of a stamp file to avoid building vnode_if.[ch]
concurrently.

Removed explicit dependencies that will be generated by `make' (.c.o)
or will be generated by mkdep.

Added missing dependencies of special objects on opt_global.h.

Use ${NORMAL_C} instead of special rules for special objects where
possible.

FIxed dependencies of vers.o.
1998-07-12 10:47:32 +00:00
Bruce Evans
784c3c3465 Removed all traces of PARAM in Makefile.i386. Incremented CONFIGVERS
to reflect the dependency of Makefile.i386 on nothing being put in
PARAM.

Config versioning is too closely coupled with the Makefile.i386.
1998-07-12 09:52:45 +00:00
Eivind Eklund
1fcddf2eea Fix race condition for creation of vnode_if.c and vnode_if.h.
Exact problem pointed out by: Cyrus Rahman <cr@jcmax.com>
1998-06-24 13:55:32 +00:00
Bruce Evans
afafca8bcb Don't generate declarations for isa device structs in "ioconf.h".
Don't generate declarations for isa interrupt handlers at all.
Isa interrupt handlers are now declared in <i386/isa/isa_device.h>
but should be converted take a `void *' arg and staticized as
soon as possible.

Updated CONFIGVERS.  New configs are very incompatible with
previous versions.
1998-06-17 15:16:53 +00:00
Eivind Eklund
3933c622cd Move __FreeBSD_version from src/sys/conf/newvers.sh to
src/sys/sys/param.h, to facilitate access from the kernel.  This make
it possible to do outside kernel development and have it actually work
properly.
1998-05-21 19:21:46 +00:00
Eivind Eklund
94610ec47e Back out previous commit - it breaks when called from 'buildworld' :-(
(Damn, I wanted that in the -snap).
1998-05-20 20:54:10 +00:00
Eivind Eklund
a5eed7b873 Move __FreeBSD_version into <sys/param.h> (with automated duplication
to <osreldate.h>).  This allow kernel drivers access to it.

Approved by:	-current
1998-05-20 20:35:42 +00:00
Warner Losh
3f6c4fc33b Use ${.TARGET} rather than $@. i386 tested, pc98 untested because config
on my box doesn't grok machine type pc98.
PR:		3272
Submitted by:	jhs
1998-04-29 18:21:35 +00:00
Dima Ruban
8b78465c27 Undo my last change. 1998-04-17 07:51:36 +00:00
Dima Ruban
d3b8e3673e Use 0440 root.kmem kermissions on kernel instead of
0555 root.wheel.

Reviewed by:	freebsd-security
1998-04-15 17:53:32 +00:00
Eivind Eklund
c6b60f62de Add support for cleandepend, ${DESTDIR}, and there not being a file named
${DESTDIR}/kernel.
1998-01-31 04:23:15 +00:00
Bruce Evans
8cd077a7fd Augment $PATH to ensure searching of /sbin and /usr/sbin for sysctl
instead of using an absolute path to sysctl.
Problem reported by: ache
1997-12-18 21:03:04 +00:00
Mike Smith
41631559ba Bump configvers to 300003 to account for the crd->card (and related)
namespace changes.
1997-11-06 03:11:40 +00:00
Guido van Rooij
03486e0a41 Test if kvm_kernel.db exists before moving it. Otherwise installing
a kernel, booting single user and reinstalling a kernel fails.
1997-11-03 21:48:31 +00:00
Peter Wemm
48b29459ed Put in an initial %VERSREQ field. This will cause existing config(8)'s
to give a non-fatal warning about unknown directives, so there is no
hurry to rebuild config(8) yet, apart from shutting up the warning.
1997-10-22 00:48:36 +00:00
Peter Wemm
98823b2366 Convert the VM86 option from a global option to an option only depended
on by the files that use it.  Changing the VM86 option now only causes
a recompile of a dozen files or so rather than the entire kernel.
1997-10-10 09:44:12 +00:00
Poul-Henning Kamp
38d8a113a9 Add option for compiling in a 8x16 font. 1997-07-25 11:53:30 +00:00
Bruce Evans
1013a13daf Fixed the fix for not using -fomit-frame-pointer with -pg. The previous
fix stopped it being used in all cases, because substitution on unset
variables does not work.

When profiling, put -malign-functions=4 in CFLAGS instead of in PROF.
This fixes the histogram counts for profiling support functions.  It
gives bogus but harmless extra alignment for genassym etc.
1997-06-29 16:39:11 +00:00
Peter Wemm
d8897edc0e Revert previous change, use "compile-with" in files.i386 instead. 1997-05-31 17:59:56 +00:00
Peter Wemm
752bbf7aa8 compile ipl_funcs.c with -fomit-frame-pointer, as suggested by Bruce. This
cuts the cost of a function call instead of an inline.
1997-05-31 09:19:19 +00:00
John Polstra
61b005296f This commit affects ELF kernels only.
Remove "setdefs.h" and arrange to generate it automatically at
ELF kernel build time.

"gensetdefs.c" is a utility which scans a set of ELF object files
and outputs a line ``DEFINE_SET(name, length);'' for each linker
set that it finds.  When generating an ELF kernel, this is run just
before the final link to generate "setdefs.h".

Remove the init_sets() function from "setdef0.c", and its call from
"machdep.c".  Since "gensetdefs.c" calculates the length of each
set, it is no longer necessary in an ELF kernel to count the set
elements at kernel initialization time.  Also remove "set_of_sets"
which was used for this purpose.

Link "setdef0" and "setdef1" into the kernel only if building for
ELF.  Since init_sets() is no longer used, there is no need to link
them into an a.out kernel.
1997-05-21 23:21:30 +00:00
Doug Rabson
cea6c86c11 This is the kernel linker. To use it, you will first need to apply
the patches in freefall:/home/dfr/ld.diffs to your ld sources and set
BINFORMAT to aoutkld when linking the kernel.

Library changes and userland utilities will appear in a later commit.
1997-05-07 16:05:47 +00:00
Peter Wemm
d061973c76 Create a special option file "opt_global.h" which is included by all
source files via a 'cc -include opt_global.h ...' type arrangement.
This means we can untangle certain header files.

options.i386 has a placeholder until it has a real member so we can avoid
having to teach config about it just yet.

Reviewed by: bde
1997-04-27 20:01:47 +00:00
John Polstra
9081eec1fb Make the necessary changes so that an ELF kernel can be built. I
have successfully built, booted, and run a number of different ELF
kernel configurations, including GENERIC.  LINT also builds and
links cleanly, though I have not tried to boot it.

The impact on developers is virtually nil, except for two things.
All linker sets that might possibly be present in the kernel must be
listed in "sys/i386/i386/setdefs.h".  And all C symbols that are
also referenced from assembly language code must be listed in
"sys/i386/include/asnames.h".  It so happens that failure to do
these things will have no impact on the a.out kernel.  But it will
break the build of the ELF kernel.

The ELF bootloader works, but it is not ready to commit quite yet.
1997-04-22 06:55:47 +00:00
Peter Wemm
6875d25465 Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not
ready for it yet.
1997-02-22 09:48:43 +00:00
Jordan K. Hubbard
1130b656e5 Make the long-awaited change from $Id$ to $FreeBSD$
This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore.  This update would have been
insane otherwise.
1997-01-14 07:20:47 +00:00
Bruce Evans
c08d58eade Moved nonstandard compiler profiling options out of config. Just print
the profiling level in config and decide what to do in makefiles.

Makefile.i386:
Align functions to 16-byte boundaries if profiling is enabled.  This
will allow a fourfold reduction in the size of the profiling buffers.
1996-12-13 12:46:28 +00:00
Bruce Evans
f5227a832c Compile genassym without -static (undo rev.1.20). The default can be
depended on now, and linux_genassym has depended on it for a long time.
1996-11-06 14:56:11 +00:00
Bruce Evans
9e72552ff0 Centralized the definition of CWARNFLAGS into bsd.kern.mk. 1996-10-08 22:09:03 +00:00
Bruce Evans
e2e0d560a2 Added -I- to ${INCLUDES}. This makes 4.4Lite's (mis?)use of "foo.h"
for headers in the compile directory work unsurprisingly.  Without
-I-, the search for "foo.h" begins in the directory of the file
that includes it, and the compile directory is only searched because
`-I.' is in ${INCLUDES}.

Removed -I$S/sys from ${INCLUDES}.  It was once necessary to find
things like "param.h" in $S/sys.  Now <sys/param.h> is found in $S.
1996-09-27 16:34:16 +00:00
Bruce Evans
09a8dfa260 Don't depend in the kernel on the gcc feature of doing arithmetic on
pointers of type `void *'.  Warn about this in future.
1996-08-31 14:48:13 +00:00
Andrey A. Chernov
d17e5f0b6f Add /usr/sbin to sysctl because /usr/sbin not in standard path 1996-08-21 16:31:34 +00:00
Gary Palmer
a01e62f093 Add -Wunused to try and catch any future offenders
Reviewed by:	bde
1996-06-12 05:54:46 +00:00