Diskless /libexec/ld-elf.so.1: Cannot execute objects on /

Paulo Fragoso paulo at nlink.com.br
Fri Dec 16 03:02:10 PST 2005


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.



More information about the freebsd-stable mailing list