After building 4.5 from trunk can't run firefox

Patrick Horgan phorgan1@yahoo.com
Thu Dec 24 11:11:00 GMT 2009


On Linux dell 2.6.31-17-generic #54-Ubuntu SMP Thu Dec 10 16:20:31 UTC 
2009 i686 GNU/Linux
gcc (GCC) 4.5.0 20091224 (experimental)
Mozilla Firefox 3.5.7pre, Copyright (c) 1998 - 2009 mozilla.org

After building gcc trunk, when I tried to run firefox the next time I 
got this error:

/usr/lib/firefox-3.5.7pre/firefox: error while loading shared libraries: 
libstdc++.so.6: failed to map segment from shared object: Permission denied

and from strace here's where the attempt to open fails:

open("/usr/local/lib/libstdc++.so.6", O_RDONLY) = 3
read(3, 
"\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200\37\4\0004\0\0\0"..., 
512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=4419480, ...}) = 0
mmap2(NULL, 939000, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 
0) = -1 EACCES (Permission denied)
close(3)                                = 0
writev(2, [{"/usr/lib/firefox-3.5.7pre/firefo"..., 33}, {": ", 2}, 
{"error while loading shared libra"..., 36}, {": ", 2}, 
{"libstdc++.so.6", 14}, {": ", 2}, {"failed to map segment from 
share"..., 40}, {": ", 2}, {"Permission denied", 17}, {"\n", 1}], 
10/usr/lib/firefox-3.5.7pre/firefox: error while loading shared 
libraries: libstdc++.so.6: failed to map segment from shared object: 
Permission denied
) = 149
exit_group(127)                         = ?`


if I remove /usr/local/lib/libstdc++*  the same error happens on libgcc 
(amusingly enough, Thunderbird wanted to correct libgcc to Liberace;).  
If I remove that as well, then firefox starts fine using system 
libraries.  I removed my build directory and did an update and a new 
configure into a build directory, and a make install.  Then firefox 
failed to run just the same way.

Anyone have any ideas?  The man page for mmap2 says that EACCES implies:

       EACCES A file descriptor refers to a non-regular file.  Or  
MAP_PRIVATE
              was  requested,  but  fd is not open for reading.  Or 
MAP_SHARED
              was requested and PROT_WRITE is set,  but  fd  is  not  
open  in
              read/write (O_RDWR) mode.  Or PROT_WRITE is set, but the 
file is
              append-only.

The file descriptor is open for reading as you see above, MAP_SHARED was 
not requested, and PROT_WRITE is not set, which implies a problem with 
the file itself.

Patrick



More information about the Gcc-help mailing list