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>