bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

solaris 11 (i386), PIC, dlopen &c


From: Sam Steingold
Subject: solaris 11 (i386), PIC, dlopen &c
Date: Wed, 04 May 2011 13:06:38 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux)

Bruno,

Trying to build clisp with dynamic modules on solaris 11 (i386),
I get interesting errors with gnulib code:

1. dynmod/lib-rawsock.so (which does not use gnulib) is created
successfully and can be dynamically loaded.

2. dynmod/lib-wildcard.so cannot be created when clisp is configured
--with-debug:

gcc -shared -Wl,-z -Wl,text -Wl,-h -Wl,lib-wildcard.so -o 
/export/home/sds/src/clisp/current/build-g/dynmod/lib-wildcard.so wildcard.o 
libgnu_wc.a -g -O2 -W -Wswitch -Wcomment -Wpointer-arith -Wimplicit 
-Wreturn-type -Wmissing-declarations -Wno-sign-compare -Wno-format-nonliteral 
-falign-functions=4 -g -O0 -DDEBUG_OS_ERROR -DDEBUG_SPVW -DDEBUG_BYTECODE 
-DSAFETY=3 -DUNIX_BINARY_DISTRIB -DENABLE_UNICODE -DDYNAMIC_FFI 
-DDYNAMIC_MODULES -I. -fPIC -DPIC
Text relocation remains                         referenced
    against symbol                  offset      in file
.bss (section)                      0x5e        libgnu_wc.a(fnmatch.o)
.rodata.str1.1 (merged string section) 0x97             libgnu_wc.a(fnmatch.o)
.bss (section)                      0xad        libgnu_wc.a(fnmatch.o)
.bss (section)                      0x1d2       libgnu_wc.a(fnmatch.o)
.rodata.str1.4 (section)            0x28f       libgnu_wc.a(fnmatch.o)
.rodata.str1.1 (merged string section) 0x294            libgnu_wc.a(fnmatch.o)
.rodata (section)                   0x2b2       libgnu_wc.a(fnmatch.o)
.rodata.str1.1 (merged string section) 0x2d5            libgnu_wc.a(fnmatch.o)
.bss (section)                      0x2eb       libgnu_wc.a(fnmatch.o)
.rodata.str1.4 (section)            0x46b       libgnu_wc.a(fnmatch.o)
.rodata.str1.4 (section)            0x470       libgnu_wc.a(fnmatch.o)
.rodata.str1.4 (section)            0x56e       libgnu_wc.a(fnmatch.o)
.rodata.str1.1 (merged string section) 0x573            libgnu_wc.a(fnmatch.o)
.rodata (section)                   0x5f1       libgnu_wc.a(fnmatch.o)
.bss (section)                      0x6d3       libgnu_wc.a(fnmatch.o)
.rodata.str1.1 (merged string section) 0x959            libgnu_wc.a(fnmatch.o)
.bss (section)                      0x96f       libgnu_wc.a(fnmatch.o)
.bss (section)                      0xf76       libgnu_wc.a(fnmatch.o)
.rodata.str1.1 (merged string section) 0xfc0            libgnu_wc.a(fnmatch.o)
.bss (section)                      0xfd6       libgnu_wc.a(fnmatch.o)
.bss (section)                      0x1126      libgnu_wc.a(fnmatch.o)
.rodata.str1.4 (section)            0x11fe      libgnu_wc.a(fnmatch.o)
.rodata.str1.1 (merged string section) 0x1203           libgnu_wc.a(fnmatch.o)
.rodata.str1.4 (section)            0x121c      libgnu_wc.a(fnmatch.o)
.rodata.str1.1 (merged string section) 0x1221           libgnu_wc.a(fnmatch.o)
.rodata (section)                   0x123f      libgnu_wc.a(fnmatch.o)
.rodata.str1.1 (merged string section) 0x1267           libgnu_wc.a(fnmatch.o)
.bss (section)                      0x127d      libgnu_wc.a(fnmatch.o)
.rodata.str1.4 (section)            0x14df      libgnu_wc.a(fnmatch.o)
.rodata.str1.4 (section)            0x14e4      libgnu_wc.a(fnmatch.o)
.rodata (section)                   0x154e      libgnu_wc.a(fnmatch.o)
.bss (section)                      0x15ed      libgnu_wc.a(fnmatch.o)
.rodata.str1.1 (merged string section) 0x1892           libgnu_wc.a(fnmatch.o)
.bss (section)                      0x18a8      libgnu_wc.a(fnmatch.o)
.rodata.str1.4 (section)            0x2003      libgnu_wc.a(fnmatch.o)
.rodata.str1.1 (merged string section) 0x2008           libgnu_wc.a(fnmatch.o)
.rodata.str1.4 (section)            0x2030      libgnu_wc.a(fnmatch.o)
.rodata.str1.1 (merged string section) 0x2035           libgnu_wc.a(fnmatch.o)
.rodata.str1.4 (section)            0x204d      libgnu_wc.a(fnmatch.o)
.rodata.str1.1 (merged string section) 0x2052           libgnu_wc.a(fnmatch.o)
.text (section)                     0x0         libgnu_wc.a(fnmatch.o)
.text (section)                     0x4         libgnu_wc.a(fnmatch.o)
.text (section)                     0x8         libgnu_wc.a(fnmatch.o)
.text (section)                     0xc         libgnu_wc.a(fnmatch.o)
.text (section)                     0x10        libgnu_wc.a(fnmatch.o)
.text (section)                     0x14        libgnu_wc.a(fnmatch.o)
.text (section)                     0x18        libgnu_wc.a(fnmatch.o)
.text (section)                     0x1c        libgnu_wc.a(fnmatch.o)
...............
.text (section)                     0x2d0       libgnu_wc.a(fnmatch.o)
.text (section)                     0x2d4       libgnu_wc.a(fnmatch.o)
.text (section)                     0x2d8       libgnu_wc.a(fnmatch.o)
.text (section)                     0x2dc       libgnu_wc.a(fnmatch.o)
getenv                              0x9c        libgnu_wc.a(fnmatch.o)
getenv                              0x2da       libgnu_wc.a(fnmatch.o)
getenv                              0x95e       libgnu_wc.a(fnmatch.o)
getenv                              0xfc5       libgnu_wc.a(fnmatch.o)
getenv                              0x126c      libgnu_wc.a(fnmatch.o)
getenv                              0x1897      libgnu_wc.a(fnmatch.o)
memcpy                              0x195       libgnu_wc.a(fnmatch.o)
memcpy                              0x261       libgnu_wc.a(fnmatch.o)
__assert                            0x299       libgnu_wc.a(fnmatch.o)
__assert                            0x475       libgnu_wc.a(fnmatch.o)
__assert                            0x578       libgnu_wc.a(fnmatch.o)
__assert                            0x1208      libgnu_wc.a(fnmatch.o)
__assert                            0x1226      libgnu_wc.a(fnmatch.o)
__assert                            0x14e9      libgnu_wc.a(fnmatch.o)
__assert                            0x200d      libgnu_wc.a(fnmatch.o)
__assert                            0x203a      libgnu_wc.a(fnmatch.o)
__assert                            0x2057      libgnu_wc.a(fnmatch.o)
strcat                              0x323       libgnu_wc.a(fnmatch.o)
tolower                             0x8c4       libgnu_wc.a(fnmatch.o)
tolower                             0x8e0       libgnu_wc.a(fnmatch.o)
tolower                             0x947       libgnu_wc.a(fnmatch.o)
tolower                             0x980       libgnu_wc.a(fnmatch.o)
tolower                             0xa5c       libgnu_wc.a(fnmatch.o)
tolower                             0xab1       libgnu_wc.a(fnmatch.o)
tolower                             0xbde       libgnu_wc.a(fnmatch.o)
tolower                             0xbf5       libgnu_wc.a(fnmatch.o)
tolower                             0xeea       libgnu_wc.a(fnmatch.o)
wctype                              0x9e4       libgnu_wc.a(fnmatch.o)
wctype                              0x1ced      libgnu_wc.a(fnmatch.o)
btowc                               0xa05       libgnu_wc.a(fnmatch.o)
iswctype                            0xa0d       libgnu_wc.a(fnmatch.o)
iswctype                            0x1d09      libgnu_wc.a(fnmatch.o)
memchr                              0xb0f       libgnu_wc.a(fnmatch.o)
memchr                              0xd20       libgnu_wc.a(fnmatch.o)
wcslen                              0x1000      libgnu_wc.a(fnmatch.o)
wmemcpy                             0x10e2      libgnu_wc.a(fnmatch.o)
wmemcpy                             0x11d7      libgnu_wc.a(fnmatch.o)
wcscat                              0x12a2      libgnu_wc.a(fnmatch.o)
towlower                            0x1572      libgnu_wc.a(fnmatch.o)
towlower                            0x1829      libgnu_wc.a(fnmatch.o)
towlower                            0x1843      libgnu_wc.a(fnmatch.o)
towlower                            0x1965      libgnu_wc.a(fnmatch.o)
towlower                            0x1994      libgnu_wc.a(fnmatch.o)
towlower                            0x1ad7      libgnu_wc.a(fnmatch.o)
towlower                            0x1aee      libgnu_wc.a(fnmatch.o)
towlower                            0x1c56      libgnu_wc.a(fnmatch.o)
wmemchr                             0x1a1f      libgnu_wc.a(fnmatch.o)
wmemchr                             0x1c79      libgnu_wc.a(fnmatch.o)
__ctype                             0x1e9f      libgnu_wc.a(fnmatch.o)
mbsrtowcs                           0x1efc      libgnu_wc.a(fnmatch.o)
mbsrtowcs                           0x1f2d      libgnu_wc.a(fnmatch.o)
mbsrtowcs                           0x1fa4      libgnu_wc.a(fnmatch.o)
mbsrtowcs                           0x1fc7      libgnu_wc.a(fnmatch.o)
mbsinit                             0x1f11      libgnu_wc.a(fnmatch.o)
mbsinit                             0x1f43      libgnu_wc.a(fnmatch.o)
mbsinit                             0x1faf      libgnu_wc.a(fnmatch.o)
free                                0x201b      libgnu_wc.a(fnmatch.o)
malloc                              0x206e      libgnu_wc.a(fnmatch.o)
errno                               0x2086      libgnu_wc.a(fnmatch.o)
ld: fatal: relocations remain against allocatable but non-writable sections
collect2: ld returned 1 exit status

3. when clisp is configured normally, dynmod/lib-wildcard.so is created
without an error, but loading is fails:
 (REQUIRE "wildcard") ==>
;; Loading file /.../dynmod/wildcard.lisp ...
;;  Loading module wildcard from /.../dynmod/lib-wildcard.so
[SIMPLE-ERROR]: SYSTEM::DYNLOAD-MODULES: "dlopen" ->
  "ld.so.1: lisp.run: fatal: relocation error:
  file /.../dynmod/lib-wildcard.so: symbol rpl_mbsrtowcs:
  referenced symbol not found"

I am passing CFLAGS et al to the gnulib compilation, so "-fPIC -DPIC"
should have been used.

Bruno, do you have any insight on the matter?

-- 
Sam Steingold (http://sds.podval.org/) on CentOS release 5.6 (Final) X 
11.0.60900031
http://truepeace.org http://www.memritv.org http://thereligionofpeace.com
http://ffii.org http://honestreporting.com http://mideasttruth.com
Sinners can repent, but stupid is forever.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]