GNU bug report logs - #14022
libtool-gug

Previous Next

Package: libtool;

Reported by: Andreas Otto <aotto1968 <at> t-online.de>

Date: Fri, 22 Mar 2013 00:37:04 UTC

Severity: normal

Full log


View this message in rfc822 format

From: Andreas Otto <aotto1968 <at> t-online.de>
To: Peter Rosin <peda <at> lysator.liu.se>
Cc: 14022 <at> debbugs.gnu.org
Subject: bug#14022: libtool-gug
Date: Fri, 22 Mar 2013 10:04:13 +0100
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






This bug report was last modified 12 years and 92 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.