bug-libtool
[Top][All Lists]
Advanced

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

bug#14022: libtool-gug


From: Andreas Otto
Subject: bug#14022: libtool-gug
Date: Fri, 22 Mar 2013 10:04:13 +0100
User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130307 Thunderbird/17.0.4

Am 22.03.2013 09:34, schrieb Peter Rosin:
[please stay on-list, quoting in full to preserve the context]

On 2013-03-22 09:03, Andreas Otto wrote:
Am 22.03.2013 08:14, schrieb Peter Rosin:
Hi Andreas!

On 2013-03-21 15:41, Andreas Otto wrote:
Hi,

the following code has an error:
I don't think so, see below...

# func_convert_core_msys_to_w32 ARG
# Convert file name or path ARG from MSYS format to w32 format. Return
# result in func_convert_core_msys_to_w32_result.
func_convert_core_msys_to_w32 ()
{
    $opt_debug
    # awkward: cmd appends spaces to result
    func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
      $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
}
#end: func_convert_core_msys_to_w32

I need "...cmd /c ..." to get my stuff compiled
*snip*

$ cygpath -V
cygpath (cygwin) 1.7.17
cygpath? If you are reporting the cygpath version and say that
you need "...cmd /c..." instead of "...cmd //c...", then it
sounds as if you have confused MSYS and Cygwin. The function
func_convert_core_msys_to_w32 should only be used when you
are using MSYS. It's not for Cygwin.

On Cygwin, it is best to use a Cygwin-hosted cross compiler.
If you want to run a MinGW-hosted compiler, it's best to
use MSYS. But you still can (if you obey the rules) use
a MinGW-hosted compiler from Cygwin, but in that case you
want to use func_convert_file_cygwin_to_w32.

My advise is that you read this chapter carefully:
http://www.gnu.org/software/libtool/manual/libtool.html#File-name-conversion

Cheers,
Peter

Hi,

I'm working on cygwin no MSYS

I've done a freash cygwin installation
I'm using ONLY tools from cygwin
I use the compiler

$ export | grep w64
declare -x CC="x86_64-w64-mingw32-gcc"
declare -x CXX="x86_64-w64-mingw32-g++"

I use the
--build=x86_64-w64-mingw32

everything ONLY from cygwin

compile....
$ make -j 2
(CDPATH="${ZSH_VERSION+.}:" && cd /home/dev1usr/Project/NHI1 && /bin/bash 
/home/dev1usr/Project/NHI1/missing --run autoheader)
rm -f stamp-h1
touch /home/dev1usr/Project/NHI1/mqconfig.h.in
cd . && /bin/bash ./config.status mqconfig.h
config.status: creating mqconfig.h
config.status: mqconfig.h is unchanged
make  all-recursive
make[1]: Entering directory `/build/dev1usr/Main/thread'
Making all in theLink
make[2]: Entering directory `/build/dev1usr/Main/thread/theLink'
Making all in sqlite
make[3]: Entering directory `/build/dev1usr/Main/thread/theLink/sqlite'
/bin/sh ../../libtool  --tag=CC   --mode=compile x86_64-w64-mingw32-gcc 
-std=gnu99 -DHAVE_CONFIG_H -I. -I/home/dev1usr/Project/NHI1/theLink/sqlite 
-I../..   -D_DEBUG -D_HAVE_SQLITE_CONFIG_H  -g -Wall -Wcast-align -g -O2 -MT 
libtmp_la-sqlite3.lo -MD -MP -MF .deps/libtmp_la-sqlite3.Tpo -c -o 
libtmp_la-sqlite3.lo `test -f 'sqlite3.c' || echo 
'/home/dev1usr/Project/NHI1/theLink/sqlite/'`sqlite3.c
/bin/sh ../../libtool  --tag=CC   --mode=compile x86_64-w64-mingw32-gcc 
-std=gnu99 -DHAVE_CONFIG_H -I. -I/home/dev1usr/Project/NHI1/theLink/sqlite 
-I../..   -D_DEBUG -D_HAVE_SQLITE_CONFIG_H -static  -g -Wall -Wcast-align -g 
-O2 -MT libtmps_la-sqlite3.lo -MD -MP -MF .deps/libtmps_la-sqlite3.Tpo -c -o 
libtmps_la-sqlite3.lo `test -f 'sqlite3.c' || echo 
'/home/dev1usr/Project/NHI1/theLink/sqlite/'`sqlite3.c
libtool: compile:  x86_64-w64-mingw32-gcc -std=gnu99 -DHAVE_CONFIG_H -I. 
-I/home/dev1usr/Project/NHI1/theLink/sqlite -I../.. -D_DEBUG 
-D_HAVE_SQLITE_CONFIG_H -g -Wall -Wcast-align -g -O2 -MT libtmps_la-sqlite3.lo 
-MD -MP -MF .deps/libtmps_la-sqlite3.Tpo -c 
/home/dev1usr/Project/NHI1/theLink/sqlite/sqlite3.c -o libtmps_la-sqlite3.o
libtool: compile:  x86_64-w64-mingw32-gcc -std=gnu99 -DHAVE_CONFIG_H -I. 
-I/home/dev1usr/Project/NHI1/theLink/sqlite -I../.. -D_DEBUG 
-D_HAVE_SQLITE_CONFIG_H -g -Wall -Wcast-align -g -O2 -MT libtmp_la-sqlite3.lo 
-MD -MP -MF .deps/libtmp_la-sqlite3.Tpo -c 
/home/dev1usr/Project/NHI1/theLink/sqlite/sqlite3.c  -DDLL_EXPORT -DPIC -o 
.libs/libtmp_la-sqlite3.o
/home/dev1usr/Project/NHI1/theLink/sqlite/sqlite3.c: In function 
'memTracePrint':
/home/dev1usr/Project/NHI1/theLink/sqlite/sqlite3.c:63824:5: warning: unknown 
conversion type character 'l' in format
/home/dev1usr/Project/NHI1/theLink/sqlite/sqlite3.c:63824:5: warning: too many 
arguments for format
/home/dev1usr/Project/NHI1/theLink/sqlite/sqlite3.c:63826:5: warning: unknown 
conversion type character 'l' in format
/home/dev1usr/Project/NHI1/theLink/sqlite/sqlite3.c:63826:5: warning: too many 
arguments for format
/home/dev1usr/Project/NHI1/theLink/sqlite/sqlite3.c: In function 
'memTracePrint':
/home/dev1usr/Project/NHI1/theLink/sqlite/sqlite3.c:63824:5: warning: unknown 
conversion type character 'l' in format
/home/dev1usr/Project/NHI1/theLink/sqlite/sqlite3.c:63824:5: warning: too many 
arguments for format
/home/dev1usr/Project/NHI1/theLink/sqlite/sqlite3.c:63826:5: warning: unknown 
conversion type character 'l' in format
/home/dev1usr/Project/NHI1/theLink/sqlite/sqlite3.c:63826:5: warning: too many 
arguments for format
mv -f .deps/libtmp_la-sqlite3.Tpo .deps/libtmp_la-sqlite3.Plo
/bin/sh ../../libtool --tag=CC    --mode=link x86_64-w64-mingw32-gcc -std=gnu99 
-D_HAVE_SQLITE_CONFIG_H   -g -Wall -Wcast-align -g -O2 -o libtmp.la  
libtmp_la-sqlite3.lo
mv -f .deps/libtmps_la-sqlite3.Tpo .deps/libtmps_la-sqlite3.Plo
/bin/sh ../../libtool --tag=CC    --mode=link x86_64-w64-mingw32-gcc -std=gnu99 
-D_HAVE_SQLITE_CONFIG_H -static   -g -Wall -Wcast-align -g -O2 -static  -o 
libtmps.la  libtmps_la-sqlite3.lo
libtool: link: ar cru .libs/libtmps.a  libtmps_la-sqlite3.o
libtool: link: ranlib .libs/libtmps.a
libtool: link: ( cd ".libs" && rm -f "libtmps.la" && ln -s "../libtmps.la" 
"libtmps.la" )

HANG

now with a littel bit debugging

$ sh -xv ../../libtool --tag=CC    --mode=link x86_64-w64-mingw32-gcc 
-std=gnu99 -D_HAVE_SQLITE_CONFIG_H   -g -Wall -Wcast-align -g -O2   -o 
libtmp.la  libtmp_la-sqlite3.lo
+ func_dirname_result=
+ xdir=
+ test .libs/libtmp_la-sqlite3.o '!=' none
+ pic_object=.libs/libtmp_la-sqlite3.o
+ test '' = dlfiles
+ test '' = dlprefiles
+ libobjs+=' .libs/libtmp_la-sqlite3.o'
+ arg=.libs/libtmp_la-sqlite3.o
+ test none '!=' none
+ non_pic_object=.libs/libtmp_la-sqlite3.o
+ non_pic_objects+=' .libs/libtmp_la-sqlite3.o'
+ test -n .libs/libtmp_la-sqlite3.o
+ compile_command+=' .libs/libtmp_la-sqlite3.o'
+ finalize_command+=' .libs/libtmp_la-sqlite3.o'
+ test 0 -gt 0
+ test -n ''
+ test no = yes
+ oldlibs=
+ func_basename libtmp.la
+ func_basename_result=libtmp.la
+ outputname=libtmp.la
+ libobjs_save=' .libs/libtmp_la-sqlite3.o'
+ test -n PATH
+ eval 'shlib_search_path=`$ECHO' '"${PATH}"' '|' '$SED' ''\''s/:/' '/g'\''`'
shlib_search_path=`$ECHO "${PATH}" | $SED 's/:/ /g'`
$ECHO "${PATH}" | $SED 's/:/ /g'
+++ printf '%s\n' '/usr/local/bin:/usr/bin:/cygdrive/c/Program Files/Common 
Files/Microsoft Shared/Windows 
Live:/cygdrive/c/Windows/system32:/cygdrive/c/Windows:/cygdrive/c/Windows/System32/Wbem:/cygdrive/c/Windows/System32/WindowsPowerShell/v1.0:/cygdrive/c/Program
 Files/Broadcom/Broadcom 802.11/Driver:/cygdrive/c/Program Files (x86)/ATI 
Technologies/ATI.ACE/Core-Static'
+++ /usr/bin/sed 's/:/ /g'
++ shlib_search_path='/usr/local/bin /usr/bin /cygdrive/c/Program Files/Common 
Files/Microsoft Shared/Windows Live /cygdrive/c/Windows/system32 
/cygdrive/c/Windows /cygdrive/c/Windows/System32/Wbem 
/cygdrive/c/Windows/System32/WindowsPowerShell/v1.0 /cygdrive/c/Program 
Files/Broadcom/Broadcom 802.11/Driver /cygdrive/c/Program Files (x86)/ATI 
Technologies/ATI.ACE/Core-Static'
+ eval 'sys_lib_search_path="/usr/x86_64-w64-mingw32/lib64' 
/usr/x86_64-w64-mingw32/sys-root/mingw/lib '"'
sys_lib_search_path="/usr/x86_64-w64-mingw32/lib64 
/usr/x86_64-w64-mingw32/sys-root/mingw/lib "
++ sys_lib_search_path='/usr/x86_64-w64-mingw32/lib64 
/usr/x86_64-w64-mingw32/sys-root/mingw/lib '
+ eval 'sys_lib_dlsearch_path="/lib' '/usr/lib"'
sys_lib_dlsearch_path="/lib /usr/lib"
++ sys_lib_dlsearch_path='/lib /usr/lib'
+ func_dirname libtmp.la / ''
+ case ${1} in
+ func_dirname_result=
+ output_objdir=.libs
+ func_to_tool_file .libs/
+ :
+ case ,$2, in
+ func_convert_file_msys_to_w32 .libs/
+ :
+ func_to_host_file_result=.libs/
+ test -n .libs/
+ func_convert_core_msys_to_w32 .libs/
+ :
( cmd //c echo "$1" ) 2>/dev/null |
     $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"
++ /usr/bin/sed -e 's/[ ]*$//' -e 's|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'

HANG

=> are you convinced?


mfg AO

No, not convinced.

Your error is that you have specified --build incorrectly.
You are building on Cygwin with a Cygwin-hosted compiler,
which means that --build should be something-cygwin (but
you should leave configure to autodetect the specifics).
What you want to do is to specify --host=x86_64-w64-mingw32
since you are building for a MinGW host.

Cheers, and hope that helps,
Peter


Stopp, you are right and not right at the same time.

I using cygwin to build a windows native library -> this mean WITHOUT any cygwin specific libraray
=> so, I'm using cygwin in cross-compiling mode ;-)

NOW i found the error (with the help of you)

I used "--build=x86_64-w64-mingw32" but I need "--host=x86_64-w64-mingw32" to enable
cross-compiling

to make this error not happen again, I add an error-ckeck to my "configure.ac" script

....
if test "$build_os" = "mingw32"; then
  AC_MSG_ERROR([as '--build=...' only cygwin is supported
  -> keep it unchanged if you are working in a cygwin toolchan
to enable cross-compiling mode you have to specify
  -> --host=x86_64-w64-mingw32])
elif test "$build_os" = "cygwin"; then
...

Thanks for your help.


mfg AO







reply via email to

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