Paulo Fragoso
2005-Dec-16 03:02 UTC
Diskless /libexec/ld-elf.so.1: Cannot execute objects on /
Hi, After upgrade from FreeBSD 5.3 to FREEBSD_5_4 (cvs), our diskless machines didn't work correctly, many applications using dynamic libraries didn't start, this error was showed: /libexec/ld-elf.so.1: Cannot execute objects on / We found on all diskless machines had MNT_NOEXEC flags set on (fstatfs). After that we have changed rtld.c changed: --- rtld.c.orig Thu Dec 15 17:26:41 2005 +++ rtld.c Thu Dec 15 17:38:15 2005 @@ -1267,7 +1267,7 @@ close(fd); return NULL; } - if (fs.f_flags & MNT_NOEXEC) { + if (fs.f_flags & MNT_NOEXEC && strcmp(fs.f_mntonname,"/") ) { _rtld_error("Cannot execute objects on %s\n", fs.f_mntonname); close(fd); return NULL; Now, all diskless stations works fine. Is there another solution for this case? Thanks, Paulo Fragoso.
Paulo Fragoso
2005-Dec-16 05:16 UTC
Diskless /libexec/ld-elf.so.1: Cannot execute objects on /
Paulo Fragoso wrote:> Hi, > > After upgrade from FreeBSD 5.3 to FREEBSD_5_4 (cvs), our diskless > machines didn't work correctly, many applications using dynamic > libraries didn't start, this error was showed: > > /libexec/ld-elf.so.1: Cannot execute objects on / > > We found on all diskless machines had MNT_NOEXEC flags set on (fstatfs). > After that we have changed rtld.c changed: >Ops, all remote mount points defined with read-only on server has MNT_NOEXEC flag seted on the clients (diskless), is there a bug with fstatfs function? server: /usr/X11R6 -ro -network A.B.C.D -mask 255.255.255.0 client: A.B.C.S:/usr/X11R6 /usr/X11R6 nfs ro,tcp,nfsv3,-w=32768,-r=32768 0 0 On the cliente NFS the /usr/X11R6 has MNT_NOEXEC seted! Paulo Fragoso.
Mike Andrews
2005-Dec-16 11:26 UTC
Diskless /libexec/ld-elf.so.1: Cannot execute objects on /
On Fri, 16 Dec 2005, Paulo Fragoso wrote:> After upgrade from FreeBSD 5.3 to FREEBSD_5_4 (cvs), our diskless > machines didn't work correctly, many applications using dynamic > libraries didn't start, this error was showed: > > /libexec/ld-elf.so.1: Cannot execute objects on / > > We found on all diskless machines had MNT_NOEXEC flags set on (fstatfs). > After that we have changed rtld.c changed: > > --- rtld.c.orig Thu Dec 15 17:26:41 2005 > +++ rtld.c Thu Dec 15 17:38:15 2005 > @@ -1267,7 +1267,7 @@ > close(fd); > return NULL; > } > - if (fs.f_flags & MNT_NOEXEC) { > + if (fs.f_flags & MNT_NOEXEC && strcmp(fs.f_mntonname,"/") ) { > _rtld_error("Cannot execute objects on %s\n", > fs.f_mntonname); > close(fd); > return NULL; > > Now, all diskless stations works fine. > > Is there another solution for this case?We had the same problem with our netboot cluster, and going from RELENG_5_4 (5.4-RELEASE) up to RELENG_5 (5-STABLE) fixed it. Mike Andrews * mandrews@bit0.com * http://www.bit0.com It's not news, it's Fark.com. Carpe cavy!