Commit Graph

51 Commits

Author SHA1 Message Date
Bruce Evans 27e2d53c58 Compile linux_genassym.c with ordinary ${CFLAGS}. The (small) need for
-U_KERNEL became negative when all all the genassym.c's were converted
to be cross-built.

Use "genassym ... > ${.TARGET}", not "genassym -o $@ ...", so that
genassym(1) doesn't need to support -o.

Removed duplicate -D_KERNEL from flags for compiling linux_locore.s.
2000-01-09 10:04:53 +00:00
Peter Wemm c447342094 Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL"
is an application space macro and the applications are supposed to be free
to use it as they please (but cannot).  This is consistant with the other
BSD's who made this change quite some time ago.  More commits to come.
1999-12-29 05:07:58 +00:00
Marcel Moolenaar 00d6d49adc Use genassym(1) and <sys/assym.h> to generate assembler symbols. 1999-12-23 19:59:47 +00:00
Martin Cracauer e14140f43e Add a run of Linux ldconfig. 1999-12-13 08:38:22 +00:00
Bruce Evans 6f940b3847 Removed special rules for building and cleaning device interface files
and empty options files.  The rules are now generated automatically in
bsd.kmod.mk.  Cleaned up related things ($S and ${CLEANFILES}).
1999-11-28 18:53:47 +00:00
Marcel Moolenaar a50db55884 Replace 'i386' with '${MACHINE_ARCH}' in preparation of the development
of a linuxulator for Alpha.
1999-11-12 20:04:59 +00:00
Marcel Moolenaar 48adcae922 Install linux.sh in /usr/sbin and not in /usr/bin.
PR: 13545
Submitted by: Jose M. Alcaide <jose@we.lc.ehu.es>
1999-09-03 07:15:38 +00:00
Marcel Moolenaar 9e8b10d186 Add MAINTAINER and remove the unused COMPAT_LINUX and VM_STACK defines. 1999-08-28 09:04:21 +00:00
Peter Wemm c3aac50f28 $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
Marcel Moolenaar c6dfea0ebd Add sysctl variables for the Linuxulator. These reside under `compat.linux' as
discussed on current.

The following variables are defined (for now):

    osname (defaults to "Linux")
        Allow users to change the name of the OS as returned by uname(2),
        specially added for all those Linux Netscape users and statistics
        maniacs :-) We now have what we all wanted!

    osrelease (defaults to "2.2.5")
        Allow users to change the version of the OS as returned by uname(2).
        Since -current supports glibc2.1 now, change the default to 2.2.5
        (was 2.0.36).

    oss_version (defaults to 198144 [0x030600])
        This one will be used by the OSS_GETVERSION ioctl (PR 12917) which I
        can commit now that we have the MIB. The default version number is the
        lowest version possible with the current 'encoding'.

A note about imprisoned processes (see jail(2)):
  These variables are copy-on-write (as suggested by phk). This means that
  imprisoned processes will use the system wide value unless it is written/set
  by the process. From that moment on, a copy local to the prison will be
  used.

A note about the implementation:
  I choose to add a single pointer to struct prison, because I didn't like the
  idea of changing struct prison every time I come up with a new variable. As
  a side effect, the extra storage is only needed when a variable is set from
  within the prison. This also minimizes kernel bloat when the Linuxulator is
  not used; both compiled in or as a module.

Reviewed by: bde (first version only) and phk
1999-08-27 19:47:41 +00:00
Mike Pritchard 3eaf789e97 Sort xrefs.
Submitted by:	Alexey Zelkin <phantom@cris.net>
1999-08-19 00:10:37 +00:00
Nik Clayton bf9c09f910 "Linux emulator" -> "Linux image activator"
PR:             docs/12882
Submitted by:   des
1999-08-04 18:58:37 +00:00
Guy Helmer 200c501e03 Reference kld(4).
Submitted by:	Nathan Ahlstrom <nrahlstr@winternet.com>
1999-04-23 16:12:44 +00:00
Nick Hibma 6eb1682c86 Update for the man page. 4.0 is using KLD's not LKM's. 1999-02-22 13:08:38 +00:00
Julian Elischer b5def701c7 Compile the linux module with the same flags as the kernel.
(oops).

Submitted by:	"Richard Seaman, Jr." <dick@tar.com>
1999-01-26 21:29:01 +00:00
Jordan K. Hubbard 531842e143 Install scripts without .sh suffix. 1998-11-12 00:37:39 +00:00
Peter Wemm 0ddd3cf262 Rename joy,ibcs2,linux to joy.sh,ibcs2.sh,linux.sh (via repo copy). 1998-11-11 07:04:10 +00:00
Jordan K. Hubbard aab22db753 We need to install the linux shell script or the lkm version will
still be in place.
1998-11-10 19:39:58 +00:00
Peter Wemm ce6bd34722 Build linux_genassym static, this should help aout-to-elf builds 1998-11-05 04:39:26 +00:00
Peter Wemm 6a1a9040f4 Do not overwrite the lkm versions of the install scripts for now. linux
works but ibcs2 has a load failure and joy doesn't look like it'll work.
1998-11-05 04:22:52 +00:00
Peter Wemm 38266231ef Update to use kldload, no temporary files! 1998-11-05 04:19:26 +00:00
Peter Wemm a654d07295 Sample initial set of kld-ified modules. Not all have been completely
converted yet.  These are more of a starting point.  This is NOT connected
to the parent Makefile.

OK'ed by jkh (who is ever so patiently waiting)
1998-10-16 04:30:52 +00:00
Alexander Langer 514058dc0d Unregister the glibc2 brand at module unload time.
Change the ELF registration/unregistration scheme to be less error prone.
Adding a new brand requires a single addition to linux_brandlist instead of
modifying linux_load(), linux_unload(), and linux_elf_init().

Approved by:	jkh
Reviewed by:	msmith
1998-10-11 21:08:02 +00:00
Mike Smith 4e138a28a0 Add support for glibc consumers using the new ld-linux.so.2 linker.
I can't say this was the most inspired fix, but it matches the design OK.
1998-09-17 22:08:34 +00:00
Martin Cracauer 62e334347c Load linux emulator lkm only when not already loaded. This avoids
leftover files in /tmp. Script slightly modified from PR version
to use fewer processes.
PR:		i386/7725
Submitted by:	Stefan Eggers seggers@semyam.dinoco.de
1998-09-07 16:15:59 +00:00
Bruce Evans 8c1a5985d2 Added a `build-tools' target for internal tools. (linux_genassym may
not actually work for cross compiling, but that is another problem.)

Honor LDFLAGS for building internal tools.  (Tools should normally
be built static to avoid problems with picking up target shared
libraries.  bsd.kmod doesn't set -static yet, and has some problems
with `LDFLAGS=-static ...' in the environment.)
1998-07-07 02:04:20 +00:00
Bruce Evans 7f591b7e4b Fixed missing options headers. Options that affect LKMs shouldn't
exist.
1998-07-01 17:10:00 +00:00
Bruce Evans 77d71f644a Fixed a race to build the `@' and `machine' symlinks early enough
for `make -jN'.
1998-03-19 12:35:55 +00:00
Eivind Eklund ccf5ba7483 Back out opt_diagnostic.h changes. 1998-02-06 23:54:27 +00:00
Eivind Eklund 8e734a64e3 Make the LKMs handle DIAGNOSTIC as a new-style option. 1998-02-04 21:56:39 +00:00
Bruce Evans 77783a2701 Don't handle the `machine' symlink or related include paths here.
bsd.kmod.mk now handles it more generally.
1998-02-01 17:53:56 +00:00
Eivind Eklund e9161c5082 Handle COMPAT_43 define -> option change. 1997-12-16 18:45:50 +00:00
Jordan K. Hubbard a5506b985f Merge 1.8.2.1 into -current. 1997-05-01 06:08:14 +00:00
Peter Dufault 952d112864 Make MOD_* macros almost consistent:
Use the name argument almost the same in all LKM types.  Maintain
the current behavior for the external (e.g., modstat) name for DEV,
EXEC, and MISC types being #name ## "_mod" and SYCALL and VFS only
#name.  This is a candidate for change and I vote just the name without
the "_mod".

Change the DISPATCH macro to MOD_DISPATCH for consistency with the
other macros.

Add an LKM_ANON #define to eliminate the magic -1 and associated
signed/unsigned warnings.

Add MOD_PRIVATE to support wcd.c's poking around in the lkm structure.

Change source in tree to use the new interface.

Reviewed by:	Bruce Evans
1997-04-06 10:49:22 +00:00
Peter Wemm 4a0f765fbf Revert $FreeBSD$ back to $Id$ 1997-02-22 12:49:29 +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
Mike Pritchard 01d5b65c75 Add a man page for linux(8) (loads the Linux emulator kernel module). 1997-01-10 05:48:50 +00:00
Søren Schmidt ea5a2b2e00 Prepare kernel to take advantage of "branded" ELF binaries. 1996-10-16 17:51:08 +00:00
Bruce Evans e7fa2650cc `struct linker_set execsw_set' was declared as const and pointers in it
were declared as non-const.  This is backwards (_lkm_exec() changes the
pointers but all the target `struct execsw's are const).  Fixed this
and poisoned related declarations to match and removed the bogus casts
that hid the bug.
1996-09-03 22:52:27 +00:00
Bruce Evans c11bd94104 Fixed the `machine' link. It pointed to the wrong place, and was created
too late to be used in all cases.  It should probably be created (early)
in bsd.kmod.mk for all LKMs.

Use cc instead of cpp | as for the same reasons as in the kernel makefile.
CFLAGS isn't split up as well as in the kernel makefile, but cc doesn't
pass compiler warning flags to cpp, so there is no need to split it.
1996-06-25 20:13:12 +00:00
Peter Wemm f07101317f linux_interp now moved into sys/i386/linux/linux_sysvec.c, but still
connected at load and unload time from here.
1996-03-10 22:43:37 +00:00
Søren Schmidt e1743d02cd First attempt at FreeBSD & Linux ELF support.
Compile and link a new kernel, that will give native ELF support, and
provide the hooks for other ELF interpreters as well.

To make native ELF binaries use John Polstras elf-kit-1.0.1..
For the time being also use his ld-elf.so.1 and put it in
/usr/libexec.

The Linux emulator has been enhanced to also run ELF binaries, it
is however in its very first incarnation.
Just get some Linux ELF libs (Slackware-3.0) and put them in the
prober place (/compat/linux/...).
I've ben able to run all the Slackware-3.0 binaries I've tried
so far.
(No it won't run quake yet :)
1996-03-10 08:42:54 +00:00
Peter Wemm 785d64c46a Update the linux lkm to use the new file list and build routine.
This is a bit of a kludge and needs more work.
1996-03-02 20:00:35 +00:00
Rodney W. Grimes a7ba018ad1 Add missing ${DESTDIR} to afterinstall: target. 1996-01-27 23:57:06 +00:00
Peter Wemm e5255f3193 No longer generate empty opt_sysvipc.h, and no longer issue -DSYSVSHM etc
for the CFLAGS.  Now, it tracks whatever the booted kernel has rather than
being specifying what features your kernel has at lkm build time.
1996-01-08 05:36:17 +00:00
Andrey A. Chernov 12ff37b733 Add opt_sysvipc.h rules similar as in ibcs2 Makefile
(make fails in old case)
1996-01-06 23:10:25 +00:00
Søren Schmidt e896b7b2a3 Added SYSVSHM define 1995-12-29 22:10:49 +00:00
Bruce Evans b3e24f9ce9 Changed the first (name) arg of MOD_DEV(), MOD_EXEC() and MOD_MISC()
from a string to an identifier so that it can be used to generate
declarations and strings.  It's much easier to stringize an identifier
than to identifize a string.  A uniform naming scheme must be used
for the automatically generated things to apply.  This is a feature.

Used the module identifer to generate prototypes for the module load,
unload and stat functions.  Removed the few prototypes for these that
already existed.

Used the module identifier to generate a unique struct tag in MOD_DEV().
This should probably be done for all the MOD_*() macros.

Moved the trailing semicolon from the MOD_*() macro definitions to the
macro invocations that didn't already (bogusly) have it.

Staticized the module load and unload functions.

Added function return types for the module load, unload and stat functions.

lkm/ibcs2/ibcs2.c:
Included <sys/sysproto.h> to get everything prototyped.
Cleaned up #includes.

lkm/ibcs2/ipfw.c:
Cleaned up #includes.

lkm/linux/linux.c:
The module name had to change from "linux_emulator" to "linux_mod" to
be automatically generated.
Cleaned up #includes.

lkm/syscons/*/*_saver.c:
Completed delcarations of function pointers.

sys/i386/isa/atapi.c:
The module name had to change from "atapi" to "atapi_mod" to be
automatically generated.

sys/i386/isa/wcd.c:
Used the fixed MOD_DEV().  This module has two devices and expanded the
macro in the source instead of fixing it.
The module names had to change from "wcd" and "rwcd" to "wcd_mod" and
"rwcd_mod" to be automatically generated.

sys/pccard/pcic.c:
The module name had to change from "pcic" to "pcic_mod" to be
automatically generated.
1995-11-14 07:35:57 +00:00
Bruce Evans 0ea3482342 Replaced nosys() by lkm_nullcmd(). Always call lkm load/unload/stat
functions instead of skipping the call if the function is nosys().
nosys() returned the wrong value as well as having the wrong type.
1995-11-13 07:19:10 +00:00
Peter Wemm 8e6b01171e Do a pass over the broken LKM's and update them to use the "new"
convention of having their entry point named "<modname>_mod"".
Symorder is enforcing this when the current bsd.kmod.mk is installed.

I've not tested all these, but at least they all compile now.

Reattach them to the makefile.

Note that the change that I made to symorder needs to be compiled and
installed before any LKM's will work - the last version was corrupting
the relocation tables.  A "make world" will to this, but if you
manually run a make on the lkm's you'll need to take care of it by
hand.
1995-10-28 12:35:14 +00:00