Skip to content
Snippets Groups Projects
Commit 31dead41 authored by Rene Brun's avatar Rene Brun
Browse files

From Axel Naumann:

the gcc guys told me how to solve things (claiming it's not a gcc bug -
even though things work with v3.2 but not with v3.3.1), but of course
that didn't work...

Nevertheless, I found a solution. We'll have to create the good old
import libs (.dll.a) again. This takes a bit more time, and a lot more
disk space (34MB) - but it works. This also means the ld version check
can be removed, as all ld versions will have to create a .dll.a now. The
--(no-)whole-archive ld flag is not needed anymore.


git-svn-id: http://root.cern.ch/svn/root/trunk@7911 27541ba8-7e3a-0410-8455-c3a389f83636
parent bb779572
No related branches found
No related tags found
No related merge requests found
......@@ -108,8 +108,8 @@ elif [ $LD = "build/unix/wingcc_ld.sh" ]; then
EXPLLNKCORE="-Llib -lCint"
fi
fi
line="$LD $SOFLAGS$SONAME $LDFLAGS -o $LIB -Wl,--whole-archive $OBJS \
-Wl,--no-whole-archive $EXTRA $EXPLLNKCORE"
line="$LD $SOFLAGS$SONAME $LDFLAGS -o $LIB $OBJS \
$EXTRA $EXPLLNKCORE"
echo $line
$line
else
......
......@@ -12,25 +12,17 @@ while [ "$1" != "" ]; do
dllname="$1"; dllbase=`basename $1`;
if [ "`echo $dllname | sed 's{^lib/.*\.dll${{'`" != "$dllname" ]; then
isdll=1
args="$args bin/$dllbase"
args="$args bin/$dllbase -Wl,--out-implib=$dllname.a"
else
args="$args $1"
fi ;;
-Wl,--no-whole-archive)
found_no_whole_archive=yes;
args="$args $1" ;;
*) args="$args $1" ;;
esac
shift
done
ldversion=0`ld -V| head -n1 | sed 's/.* \([[:digit:]]*$\)/\1/' | egrep '[[:digit:]]+'`
if [ $ldversion -lt 20030404 ]; then
outimplib="-Wl,--out-implib,${dllname}.a"
fi
#
g++ $outimplib $args \
g++ $args \
&& ( if [ "$isdll" != "0" ]; then \
ln -sf ../bin/$dllbase $dllname; \
fi )
......
......@@ -32,12 +32,10 @@ COMPILER = gnu
# Linker:
LD = build/unix/wingcc_ld.sh
# -Wl,--dll-search-prefix=cyg -Wl,--force-exe-suffix
LDFLAGS = $(OPT) \
-Wl,--export-all-symbols -Wl,--export-dynamic \
-Wl,--enable-auto-import -Wl,-Bdynamic -L/usr/X11R6/lib \
LDFLAGS = $(OPT) --Wl,--enable-auto-image-base -Wl,--export-all-symbols \
-L/usr/X11R6/lib \
$(EXTRA_LDFLAGS)
SOFLAGS = -shared --enable-auto-image-base -Wl,-soname,
SOFLAGS = -shared -Wl,-soname,
# that's what cygwin ld looks for when searching for shared libs
SOEXT = dll
EXEEXT = .exe
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment