Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 12 Jun 1999 17:25:30 +0200
From:      Marcel Moolenaar <marcel@scc.nl>
To:        Soren Schmidt <sos@freebsd.dk>
Cc:        emulation@FreeBSD.ORG
Subject:   Re: Bug in linux fcntl syscall?
Message-ID:  <37627BEA.9687CA5@scc.nl>
References:  <199906120956.LAA13361@freebsd.dk>

next in thread | previous in thread | raw e-mail | index | archive | help
Soren Schmidt wrote:

> Its a bug allright, I'll look at it together with some other patches
> for the emulator, anyone with special wishes currently, og outstanding
> patches/fixes/upgrades? I'll merge the bits and commit...

You asked for it :-) :-)

(A) Emulator/kernel: got 3 fixes/enhancements:

(1) sys/i386/linux/linux_misc.c: linux_uname

Currently linux_uname returns the same values as the FreeBSD native
syscall. Some linux binaries (RPM, for example) expect the OS name to be
"Linux". Other binaries test the revision number (Matlab???). The patch
handles this.

(2) sys/kern/imgact_elf.c: exec_elf_imgact (PR 10145)

An ELF interpreter is always loaded relative to the root of the tree
corresponding to the brand. For brand Linux this is /compat/linux. When you
want to run a Linux binary chroot'ed in /compat/linux, the ELF interpreter
cannot be found. This is (of cource) because /compat/linux does not exist
beneath /compat/linux. The patch handles this case by also trying to load
the interpreter relative to /.

(3) sys/kern/imgact_elf.c: exec_elf_imgact

Linux allows the execution of ELF images of type "ET_REL". This is how ldd
works under Linux. Since FreeBSD only executes ELF images of type
"ET_EXEC", ldd does not work under FreeBSD. The patch handles that.

The patches are attached as a single file. All three patches are for
-current. I also got patches for enhancement (3) for 3.2 and 2.2.8 releases
on my page (http://www.scc.nl/~marcel/)

(B) Ports: 3 ports + numerous updates

(1) linux-base

A replacement for linux_lib based on Red Hat 5.2 release.

(2) linux-devel

A replacement for linux_devel, also based on Red Hat 5.2 release.

(3) linux-kdump

An updated version, which uses the the replacement ports and also works for
-current

(4) numerous patches for "linux-using" ports

The patches update the dependency information in the Makefile.

There you have it :-) :-)

Seriously:
if you think any of the emulator/kernel patches is worth committing, then
by all means, commit them. The ports take a lot more time, because of the
consequences for other ports, so I don't really expect you to do that right
now.

BTW: You may want to talk to Mike Smith. He's sort of handling this when
he's got the time...

-- 
Marcel Moolenaar                                  mailto:marcel@scc.nl
SCC Internetworking & Databases                     http://www.scc.nl/
Amsterdam, The Netherlands                         tel: +31 20 4200655


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-emulation" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?37627BEA.9687CA5>