bug-gnulib
[Top][All Lists]
Advanced

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

compiling gmodule of GLIB fails with 'ld' error on Solaris-10 using GCC


From: Rob
Subject: compiling gmodule of GLIB fails with 'ld' error on Solaris-10 using GCC
Date: Mon, 15 Jun 2015 20:16:08 +0000 (UTC)
User-agent: Loom/3.14 (http://gmane.org/)

my configuration:
Solaris-10, GCC 4.8.2, GNU ld 2.25, GLIB 2.45.2

% which make
/MY_BIN/bin/make
% make -v
GNU Make 3.82

% which gcc
/MY_BIN/bin/gcc
% gcc -v
gcc version 4.8.2 (GCC)

% which ld
/MY_BIN/bin/ld
% ld -v
GNU ld (GNU Binutils) 2.25


When compiling this GLIB, it fails during the compilation of its 'gmodule'
with the following error:

...
  CCLD     gtester
  GEN      glib-public-headers.txt
make[5]: Leaving directory `/MY_SRC/glib-2.45.2/glib'
Making all in tests
make[5]: Entering directory `/MY_SRC/glib-2.45.2/glib/tests'
/MY_BIN/bin/make  all-am
make[6]: Entering directory `/MY_SRC/glib-2.45.2/glib/tests'
make[6]: Nothing to be done for `all-am'.
make[6]: Leaving directory `/MY_SRC/glib-2.45.2/glib/tests'
make[5]: Leaving directory `/MY_SRC/glib-2.45.2/glib/tests'
make[4]: Leaving directory `/MY_SRC/glib-2.45.2/glib'
make[3]: Leaving directory `/MY_SRC/glib-2.45.2/glib'
Making all in gmodule
make[3]: Entering directory `/MY_SRC/glib-2.45.2/gmodule'
/MY_BIN/bin/make  all-am
make[4]: Entering directory `/MY_SRC/glib-2.45.2/gmodule'
  CCLD     libgmodule-2.0.la
ld: fatal: unrecognized option '--'
ld: fatal: use the -z help option for usage information
collect2: error: ld returned 1 exit status
make[4]: *** [libgmodule-2.0.la] Error 1
make[4]: Leaving directory `/MY_SRC/glib-2.45.2/gmodule'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/MY_SRC/glib-2.45.2/gmodule'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/MY_SRC/glib-2.45.2'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/MY_SRC/glib-2.45.2'

Doing a 'make' in that 'gmodule' subdir on its own yields exactly the same
error:

cd /MY_SRC/glib-2.45.2/gmodule; make
make  all-am
make[1]: Entering directory `/MY_SRC/glib-2.45.2/gmodule'
  CCLD     libgmodule-2.0.la
ld: fatal: unrecognized option '--'
ld: fatal: use the -z help option for usage information
collect2: error: ld returned 1 exit status
make[1]: *** [libgmodule-2.0.la] Error 1
make[1]: Leaving directory `/MY_SRC/glib-2.45.2/gmodule'
make: *** [all] Error 2

In the 'Makefile' of that directory, I added on line 949 an 'echo' command
of what it does to compile target 'libgmodule-2.0.la', prior to letting this
command execute as it normally does:

vi Makefile
...
libgmodule-2.0.la: $(libgmodule_2_0_la_OBJECTS)
$(libgmodule_2_0_la_DEPENDENCIES) $(EXTRA_libgmodule_2_0_la_DEPENDENCIES)
        @echo "$(AM_V_CCLD)$(libgmodule_2_0_la_LINK) -rpath $(libdir)
$(libgmodule_2_0_la_OBJECTS) $(libgmodule_2_0_la_LIBADD) $(LIBS)"
        $(AM_V_CCLD)$(libgmodule_2_0_la_LINK) -rpath $(libdir)
$(libgmodule_2_0_la_OBJECTS) $(libgmodule_2_0_la_LIBADD) $(LIBS)


This gives a little more info about which exact 'ld' command-line is failing:

cd /MY_SRC/glib-2.45.2/gmodule; make
make  all-am
make[1]: Entering directory `/MY_SRC/glib-2.45.2/gmodule'
@echo  CCLD  libgmodule-2.0.la;/bin/bash ../libtool --silent --tag=CC  
--mode=link /MY_BIN/bin/gcc -Wall -Wstrict-prototypes
-Werror=declaration-after-statement -Werror=missing-prototypes
-Werror=implicit-function-declaration -Werror=pointer-arith
-Werror=init-self -Werror=format=2 -Werror=missing-include-dirs
-fvisibility=hidden -g -O2   -Wl,--export-dynamic -version-info 4502:0:4502
-export-dynamic   -o libgmodule-2.0.la -rpath /MY_BIN/lib
libgmodule_2_0_la-gmodule.lo   ../glib/libglib-2.0.la -lintl
  CCLD     libgmodule-2.0.la
ld: fatal: unrecognized option '--'
ld: fatal: use the -z help option for usage information
collect2: error: ld returned 1 exit status
make[1]: *** [libgmodule-2.0.la] Error 1
make[1]: Leaving directory `/MY_SRC/glib-2.45.2/gmodule'
make: *** [all] Error 2

Suspecting the option "-Wl,--export-dynamic" , I remove that one from the
command-line :

cd /MY_SRC/glib-2.45.2/gmodule; /bin/bash ../libtool --silent --tag=CC  
--mode=link /MY_BIN/bin/gcc -Wall -Wstrict-prototypes
-Werror=declaration-after-statement -Werror=missing-prototypes
-Werror=implicit-function-declaration -Werror=pointer-arith
-Werror=init-self -Werror=format=2 -Werror=missing-include-dirs
-fvisibility=hidden -g -O2  -version-info 4502:0:4502 -export-dynamic   -o
libgmodule-2.0.la -rpath /MY_BIN/lib libgmodule_2_0_la-gmodule.lo  
../glib/libglib-2.0.la -lintl
libtool: link: (cd ".libs" && rm -f "libgmodule-2.0.so.0" && ln -s
"libgmodule-2.0.so.0.4502.0" "libgmodule-2.0.so.0")
libtool: link: (cd ".libs" && rm -f "libgmodule-2.0.so" && ln -s
"libgmodule-2.0.so.0.4502.0" "libgmodule-2.0.so")
libtool: link: ( cd ".libs" && rm -f "libgmodule-2.0.la" && ln -s
"../libgmodule-2.0.la" "libgmodule-2.0.la" )

-> SUCCESS !

So why is this "-Wl,--export-dynamic" breaking the "ld" ?

When I check the documented options for this 'ld' program:
% ld --help | grep 'export-dynamic'
  -E, --export-dynamic        Export all dynamic symbols
  --no-export-dynamic         Undo the effect of --export-dynamic

Does anyone know what could possibly going wrong here ?





reply via email to

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