|
List Info
Thread: MinGW linux to win32 cross compiler and the test suite
|
|
| MinGW linux to win32 cross compiler and
the test suite |

|
2008-03-20 18:04:00 |
Hi all,
I have a project that uses autoconf/automake/libtool and
I'm
currently experimenting with the i586-mingw32msvc linux
hosted,
win32 target cross compiler tool chain. I'm also using Wine
to do two things; allow configure tests that need to run an
executable to work correctly, execute the test suite.
The problem I'm having is that the wrapper scripts
generated
by ltmain.sh in the tests/ directory cannot find the
generated
DLL in the src/.lib/ directory. Is this a bug or am I doing
something wrong?
I'm using libtool version 1.5.26.
Cheers,
Erik
--
------------------------------------------------------------
-----
Erik de Castro Lopo
------------------------------------------------------------
-----
"Yeah, all that emacs is missing to be counted as a
full-featured
operating system is an easy-to-use text editor."
-- Arnold Krille on the Linux Audio Developer mailing list
_______________________________________________
http://
lists.gnu.org/mailman/listinfo/libtool
|
|
| Re: MinGW linux to win32 cross compiler
and the test suite |

|
2008-03-20 18:30:03 |
Hello Erik,
* Erik de Castro Lopo wrote on Fri, Mar 21, 2008 at
12:04:00AM CET:
>
> I have a project that uses autoconf/automake/libtool
and I'm
> currently experimenting with the i586-mingw32msvc linux
hosted,
> win32 target cross compiler tool chain. I'm also using
Wine
> to do two things; allow configure tests that need to
run an
> executable to work correctly, execute the test suite.
>
> The problem I'm having is that the wrapper scripts
generated
> by ltmain.sh in the tests/ directory cannot find the
generated
> DLL in the src/.lib/ directory. Is this a bug or am I
doing
> something wrong?
Not sure. Do the scripts set PATH to contain the
directory?
Can you post the link command and its output, and the
wrapper
script?
> I'm using libtool version 1.5.26.
FWIW, 2.2 is the current stable but it has a bug regarding
cross-compile to w32 which has only been fixed in the CVS
version. It works differently wrt. the wrappers, though.
Cheers,
Ralf
_______________________________________________
http://
lists.gnu.org/mailman/listinfo/libtool
|
|
| Re: MinGW linux to win32 cross compiler
and the test suite |

|
2008-03-21 12:29:33 |
Ralf Wildenhues wrote:
> Not sure. Do the scripts set PATH to contain the
directory?
Yes :
PATH="/home/erikd/Bzr/libsndfile-mingw/src/.libs:$PATH&
quot;
which looks correct.
> Can you post the link command and its output,
if i586-mingw32msvc-gcc -DHAVE_CONFIG_H -I. -I. -I../src
-I./../src -g -O2 -std=gnu99 -fgnu89-inline -W -Wall
-Wdeclaration-after-statement -Wpointer-arith
-Wstrict-prototypes -Wmissing-prototypes -Waggregate-return
-Wcast-align -Wcast-qual -Wnested-externs -Wshadow
-Wbad-function-cast -Wwrite-strings -pipe -MT error_test.o
-MD -MP -MF ".deps/error_test.Tpo" -c -o
error_test.o error_test.c;
then mv -f ".deps/error_test.Tpo"
".deps/error_test.Po"; else rm -f
".deps/error_test.Tpo"; exit 1; fi
/bin/bash ../libtool --tag=CC --mode=link
i586-mingw32msvc-gcc -g -O2 -std=gnu99 -fgnu89-inline -W
-Wall -Wdeclaration-after-statement -Wpointer-arith
-Wstrict-prototypes -Wmissing-prototypes -Waggregate-return
-Wcast-align -Wcast-qual -Wnested-externs -Wshadow
-Wbad-function-cast -Wwrite-strings -pipe -o
error_test.exe error_test.o utils.o ../src/libsndfile.la
-lm
i586-mingw32msvc-gcc -g -O2 -std=gnu99 -fgnu89-inline -W
-Wall -Wdeclaration-after-statement -Wpointer-arith
-Wstrict-prototypes -Wmissing-prototypes -Waggregate-return
-Wcast-align -Wcast-qual -Wnested-externs -Wshadow
-Wbad-function-cast -Wwrite-strings -pipe -o
.libs/error_test.exe error_test.o utils.o
../src/.libs/libsndfile.dll.a -L/usr/local/lib
creating error_test.exe
> and the wrapper script?
Follows below.
Cheers,
Erik
#! /bin/bash
# error_test - temporary wrapper script for
.libs/error_test.exe
# Generated by ltmain.sh - GNU libtool 1.5.26 Debian
1.5.26-1ubuntu1 (1.1220.2.493 2008/02/01 16:58:18)
#
# The error_test program cannot be directly executed until
all the libtool
# libraries that it depends on are installed.
#
# This wrapper script should never be moved out of the build
directory.
# If it is, it will not operate correctly.
# Sed substitution that helps us do robust quoting. It
backslashifies
# metacharacters that are still active within double-quoted
strings.
Xsed='/bin/sed -e 1s/^X//'
sed_quote_subst='s/([\`\"$\\])/\1/g'
# Be Bourne compatible (taken from
Autoconf:_AS_BOURNE_COMPATIBLE).
if test -n "${ZSH_VERSION+set}" &&
(emulate sh) >/dev/null 2>&1; then
emulate sh
NULLCMD=:
# Zsh 3.x and 4.x performs word splitting on
${1+"$ "}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$ "}'='"$ "'
setopt NO_GLOB_SUBST
else
case `(set -o) 2>/dev/null` in *posix*) set -o posix;;
esac
fi
BIN_SH=xpg4; export BIN_SH # for Tru64
DUALCASE=1; export DUALCASE # for MKS sh
# The HP-UX ksh and POSIX shell print the target directory
to stdout
# if CDPATH is set.
(unset CDPATH) >/dev/null 2>&1 && unset
CDPATH
relink_command=""
# This environment variable determines our operation mode.
if test "$libtool_install_magic" = "%%%MAGIC
variable%%%"; then
# install mode needs the following variable:
notinst_deplibs=' ../src/libsndfile.la'
else
# When we are sourced in execute mode, $file and $echo are
already set.
if test "$libtool_execute_magic" !=
"%%%MAGIC variable%%%"; then
echo="echo"
file="$0"
# Make sure echo works.
if test "X$1" = X--no-reexec; then
# Discard the --no-reexec flag, and continue.
shift
elif test "X`($echo 't') 2>/dev/null`" =
'Xt'; then
# Yippee, $echo works!
:
else
# Restart under the correct shell, and then maybe
$echo will work.
exec /bin/bash "$0" --no-reexec
${1+"$ "}
fi
fi
# Find the directory that this script lives in.
thisdir=`$echo "X$file" | $Xsed -e
's%/[^/]*$%%'`
test "x$thisdir" = "x$file" &&
thisdir=.
# Follow symbolic links until we get to the real thisdir.
file=`ls -ld "$file" | /bin/sed -n 's/.*->
//p'`
while test -n "$file"; do
destdir=`$echo "X$file" | $Xsed -e
's%/[^/]*$%%'`
# If there was a directory component, then change
thisdir.
if test "x$destdir" != "x$file";
then
case "$destdir" in
[\/]* | [A-Za-z]:[\/]*) thisdir="$destdir"
;;
*) thisdir="$thisdir/$destdir" ;;
esac
fi
file=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
file=`ls -ld "$thisdir/$file" | /bin/sed -n
's/.*-> //p'`
done
# Try to get the absolute directory name.
absdir=`cd "$thisdir" && pwd`
test -n "$absdir" &&
thisdir="$absdir"
program='error_test.exe'
progdir="$thisdir/.libs"
if test -f "$progdir/$program"; then
# Add our own library path to PATH
PATH="/home/erikd/Bzr/libsndfile-mingw/src/.libs:$PATH&
quot;
# Some systems cannot cope with colon-terminated PATH
# The second colon is a workaround for a bug in BeOS R4
sed
PATH=`$echo "X$PATH" | $Xsed -e 's/: $//'`
export PATH
# Add the dll search path components to the executable
PATH
PATH=:/home/erikd/Bzr/libsndfile-mingw/src/.libs:/usr/local/
lib:/usr/local/bin:$PATH
if test "$libtool_execute_magic" !=
"%%%MAGIC variable%%%"; then
# Run the actual program with our arguments.
exec "$progdir/$program" ${1+"$ "}
$echo "$0: cannot exec $program $*"
exit 1
fi
else
# The program doesn't exist.
$echo "$0: error: `$progdir/$program' does not
exist" 1>&2
$echo "This script is just a wrapper for
$program." 1>&2
echo "See the libtool documentation for more
information." 1>&2
exit 1
fi
fi
--
------------------------------------------------------------
-----
Erik de Castro Lopo
------------------------------------------------------------
-----
Open Source and Free Software means that you never sacrifice
quality
of the code for meeting deadlines set up by people not
participating
directly in the software development process.
_______________________________________________
http://
lists.gnu.org/mailman/listinfo/libtool
|
|
| Re: MinGW linux to win32 cross compiler
and the test suite |

|
2008-03-26 23:23:01 |
Hi all,
I have the beginnings of a solution to this issue.
If I hack the libtool generated wrapper script and replace
this:
exec "$progdir/$program" ${1+"$ "}
with
WINEDLLPATH="$PATH;$WINEDLLPATH"
exec wine "$progdir/$program"
${1+"$ "}
My test suite works. Ie, I cross compile from Linux to win32
and
the test suite gets run under wine. Personally, I find this
an
huge improvement over developing on windows.
I now have a follow up question. Would it be
possible/desirable to
have autoconf/automake/libtool do the following:
1) Detect if cross-compiling from x86 linux to win32.
2) If 1) is true, detect precence of wine.
3) If 2) is true and wine is present, write a wine
specific
version of the output wrapper scripts.
Cheers,
Erik
--
------------------------------------------------------------
-----
Erik de Castro Lopo
------------------------------------------------------------
-----
Good advice for everyone : stay away from churches, mosques
and
synagogues.
_______________________________________________
http://
lists.gnu.org/mailman/listinfo/libtool
|
|
[1-4]
|
|
|
about | contact Other archives ( Real Estate discussion Medical topics )
|