octave-maintainers
[Top][All Lists]
Advanced

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

Re: gnulib and automake


From: John W. Eaton
Subject: Re: gnulib and automake
Date: Fri, 6 Nov 2009 14:53:37 -0500

On  6-Nov-2009, Benjamin Lindner wrote:

| I am now failing at
| 
| make[3]: Entering directory 
| `/octmgw32/octave/.build_mingw32_octave-tip-automake-4_gcc-4.4.0-dw2/src'
| rm -f DLD-FUNCTIONS/__convn__.oct
| ln -s .libs/`sed -n -e "s/dlname='\([^']*\)'/\1/p" < 
| DLD-FUNCTIONS/lib__convn__.la` DLD-FUNCTIONS/__convn__.oct
| ln: creating symbolic link `DLD-FUNCTIONS/__convn__.oct' to `.libs': No 
| such file or directory
| make[3]: *** [DLD-FUNCTIONS/__convn__.oct] Error 1
| 
| 
| The -no-undefined flag I guess must also be specified for all 
| dld-functions .la objects, otherwise no shared libs are created
| 
| /bin/sh ../libtool --tag=CXX   --mode=link mingw32-g++-4.4.0-dw2 
| -shared-libgcc -march=i686 -mtune=generic -O3 -Wall   -DHAVE_CONFIG_H 
| -mieee-fp    -Wall -W -Wshadow -Wold-style-cast -Wformat -march=i686 
| -mtune=generic -O3 -Wall  -march=i686 -mtune=generic -O3 -Wall 
| -shared-libgcc -Wl,--allow-multiple-definition -o 
| DLD-FUNCTIONS/lib__contourc__.la -rpath 
| /usr/local/octmgw32_gcc-4.4.0-dw2/octave/tip-automake-4/lib/octave-3.3.50+ 
| DLD-FUNCTIONS/__contourc__.lo  -shared-libgcc 
| -Wl,--allow-multiple-definition ./liboctinterp.la 
| ../liboctave/liboctave.la ../libcruft/libcruft.la  -liberty -lm  -lgdi32 
| -lws2_32 -luser32 -lkernel32
| libtool: link: warning: undefined symbols not allowed in i686-pc-mingw32 
| shared libraries
| libtool: link: rm -fr  DLD-FUNCTIONS/.libs/lib__contourc__.a 
| DLD-FUNCTIONS/.libs/lib__contourc__.lai
| libtool: link: ar cru DLD-FUNCTIONS/.libs/lib__contourc__.a 
| DLD-FUNCTIONS/.libs/__contourc__.o
| libtool: link: ranlib DLD-FUNCTIONS/.libs/lib__contourc__.a
| libtool: link: ( cd "DLD-FUNCTIONS/.libs" && rm -f "lib__contourc__.la" 
| && ln -s "../lib__contourc__.la" "lib__contourc__.la" )
| 
| and the corresponding .la files read
| 
| # The name that we can dlopen(3).
| dlname=''
| 
| and this makes the above ln call fail.
| 
| Again I am not sure where to best add this in the autoconf sources.
| I see that in the makefile every .oct file has it's own link make rule, 
| but these seem to be generated, as there are none in the .mk sources.

The problem here is that dlname is empty in the .la file.  So we need
to find out why that is happening.

I've since discovered the -module option for libtool, which is
supposed to tell it to build something that can be opened with
dlopen.  Of course you don't have dlopen, but I don't know precisely
what "dlopen" means here.  If it strictly means "use the dlopen
library call", then we need another approach.  But if it means
"dynamically link in some way that works for the given system", then I
think this approach should work.  Looking at the code generated by
LT_INIT in the configure script, I see

  case $host_os in
  ...

  mingw* | pw32* | cegcc*)
    lt_cv_dlopen="LoadLibrary"
    lt_cv_dlopen_libs=
    ;;

but for this to be enabled, we have to specify "dlopen" as an option
to the LT_INIT macro.

I've put a new changeset at http://jweaton.org/automake-diffs.gz that
includes these changes and is updated for the latest Octave sources,
so should apply cleanly to a fresh clone of the current hg archive.

Could you try a build with these recent changes?

Thanks,

jwe


reply via email to

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