[prev in list] [next in list] [prev in thread] [next in thread]
List: wine-devel
Subject: Re: Wine's configure script when cross-compiling
From: Roger Cruz <roger_r_cruz () yahoo ! com>
Date: 2011-10-26 5:33:40
Message-ID: 1319607220.26085.YahooMailNeo () web110315 ! mail ! gq1 ! yahoo ! com
[Download RAW message or body]
[Attachment #2 (multipart/alternative)]
Hi Dan,
So far that autoconf script has been a nightmare. It doesn't include string.h (where \
strerror.h is defined) directly BUT I did include unistd.h in order to get autoconf \
to find getpagesize().
I'm building under the Android development which uses GCC for cross-compiling for \
ARM.
I decided to continue making progress on my project by taking autoconf's output \
(config.h) and hand tweaking the #define HAVE_xxx functions that I know the \
cross-compile environment provide. I get a lot farther now but a new error arises, \
for which I have no clues yet on how to fix.
make[1]: Entering directory \
`/development/rcruz/sandbox/wine-builds/winearm3/dlls/acledit' \
arm-linux-androideabi-gcc -c -I/home/rcruz/sandbox/wine-dev-branch/dlls/acledit -I. \
-I/home/rcruz/sandbox/wine-dev-branch/include -I../../include -D__WINESRC__ \
-D_REENTRANT -fPIC -Wall -pipe -fno-strength-reduce -fno-strict-aliasing \
-Wdeclaration-after-statement -Wempty-body -Wstrict-prototypes -Wtype-limits \
-Wwrite-strings -Wpointer-arith -Wlogical-op -g -O2 -o main.o \
/home/rcruz/sandbox/wine-dev-branch/dlls/acledit/main.c
/home/rcruz/sandbox/wine-builds/wine32-dev/tools/winegcc/winegcc -b \
arm-linux-androideabi -B/home/rcruz/sandbox/wine-builds/wine32-dev/tools/winebuild \
--sysroot=../.. -fasynchronous-unwind-tables -shared \
/home/rcruz/sandbox/wine-dev-branch/dlls/acledit/acledit.spec main.o -o \
acledit.dll.so ../../libs/port/libwine_port.a
../../dlls/winecrt0/libwinecrt0.a(dll_entry.o): In function `__wine_spec_dll_entry':
/home/rcruz/sandbox/wine-dev-branch/dlls/winecrt0/dll_entry.c:42: undefined reference \
to `_fini'
/home/rcruz/sandbox/wine-dev-branch/dlls/winecrt0/dll_entry.c:37: undefined reference \
to `_init'
/home/rcruz/sandbox/tools/toolchain9/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: \
acledit.dll.so: hidden symbol `_init' isn't defined
/home/rcruz/sandbox/tools/toolchain9/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: \
final link failed: Nonrepresentable section on output
collect2: ld returned 1 exit status
winegcc: arm-linux-androideabi-gcc failed
make[1]: *** [acledit.dll.so] Error 2
make[1]: Leaving directory \
`/development/rcruz/sandbox/wine-builds/winearm3/dlls/acledit'
________________________________
From: Dan Kegel <dank@kegel.com>
To: wine-devel@winehq.org
Cc: roger_r_cruz@yahoo.com
Sent: Wednesday, October 26, 2011 12:49 AM
Subject: re: Wine's configure script when cross-compiling
Welcome to the wonderful world of autoconf!
> The code that generates conftest.c does not provide for an argument to strerror. \
> Why doesn't it? And how does the configure script succeed when compiling for x86?
If I recall correctly:
Because conftest.c doesn't include the .h file that declares strerror(),
and C doesn't have typesafe linkage, checking for the
presence of a function by linking to it with a totally bogus call
with no arguments should work fine.
It's not clear why the compiler is complaining -
did it somehow see a .h file that declared strerror()?
What compiler are you using?
[Attachment #5 (text/html)]
<html><body><div style="color:#000; background-color:#fff; font-family:arial, \
helvetica, sans-serif;font-size:12pt"><br> <div style="font-family: arial, helvetica, \
sans-serif; font-size: 12pt;"><div style="font-family: times new roman, new york, \
times, serif; font-size: 12pt;"><div id="yiv105065018"><div><div \
style="color:#000;background-color:#fff;font-family:arial, helvetica, \
sans-serif;font-size:12pt;"><div><span>Hi \
Dan,</span></div><div><br><span></span></div><div><span>So far that autoconf script \
has been a nightmare. It doesn't include string.h (where strerror.h is defined) \
directly BUT I did include unistd.h in order to get autoconf to find \
getpagesize().<br></span></div><div><span><br></span></div><div><span> </span><span>I'm \
building under the Android development which uses GCC for cross-compiling for \
ARM.</span> </div><div><span><br>
</span></div>
<div><span> I decided to continue making progress on my project by taking autoconf's \
output (config.h) and hand tweaking the #define HAVE_xxx functions that I know the \
cross-compile environment provide. I get a lot farther now but a \
new error arises, for which I have no clues yet on how to \
fix.</span></div><div><span><br></span></div><div><span><br></span></div><div><span>make[1]: \
Entering directory `/development/rcruz/sandbox/wine-builds/winearm3/dlls/acledit'<br>arm-linux-androideabi-gcc \
-c -I/home/rcruz/sandbox/wine-dev-branch/dlls/acledit -I. \
-I/home/rcruz/sandbox/wine-dev-branch/include -I../../include \
-D__WINESRC__ -D_REENTRANT -fPIC -Wall -pipe -fno-strength-reduce \
-fno-strict-aliasing -Wdeclaration-after-statement -Wempty-body -Wstrict-prototypes \
-Wtype-limits -Wwrite-strings -Wpointer-arith -Wlogical-op -g -O2 -o \
main.o /home/rcruz/sandbox/wine-dev-branch/dlls/acledit/main.c<br>/home/rcruz/sandbox/wine-builds/wine32-dev/tools/winegcc/winegcc \
-b arm-linux-androideabi \
-B/home/rcruz/sandbox/wine-builds/wine32-dev/tools/winebuild --sysroot=../.. \
-fasynchronous-unwind-tables -shared \
/home/rcruz/sandbox/wine-dev-branch/dlls/acledit/acledit.spec \
main.o -o <a target="_blank" \
href="http://acledit.dll.so">acledit.dll.so</a> \
../../libs/port/libwine_port.a \
<br>../../dlls/winecrt0/libwinecrt0.a(dll_entry.o): In function \
`__wine_spec_dll_entry':<br>/home/rcruz/sandbox/wine-dev-branch/dlls/winecrt0/dll_entry.c:42: \
undefined reference to \
`_fini'<br>/home/rcruz/sandbox/wine-dev-branch/dlls/winecrt0/dll_entry.c:37: \
undefined reference to \
`_init'<br>/home/rcruz/sandbox/tools/toolchain9/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: \
acledit.dll.so: hidden symbol `_init' isn't
defined<br>/home/rcruz/sandbox/tools/toolchain9/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: \
final link failed: Nonrepresentable section on output<br>collect2: ld returned 1 exit \
status<br>winegcc: arm-linux-androideabi-gcc failed<br>make[1]: *** [acledit.dll.so] \
Error 2<br>make[1]: Leaving directory \
`/development/rcruz/sandbox/wine-builds/winearm3/dlls/acledit'<br> \
<br></span></div><div><br><span></span></div><div><span></span></div><div><br></div><div \
style="font-family:arial, helvetica, sans-serif;font-size:12pt;"><div \
style="font-family:times new roman, new york, times, serif;font-size:12pt;"><font \
size="2" face="Arial"><hr size="1"><b><span \
style="font-weight:bold;">From:</span></b> Dan Kegel \
<dank@kegel.com><br><b><span style="font-weight:bold;">To:</span></b> \
wine-devel@winehq.org<br><b><span style="font-weight:bold;">Cc:</span></b> \
roger_r_cruz@yahoo.com<br><b><span style=" font-weight:bold;">Sent:</span></b> \
Wednesday, October 26, 2011 12:49 AM<br><b><span \
style="font-weight:bold;">Subject:</span></b> re: Wine's configure script when \
cross-compiling<br></font><br> Welcome to the wonderful world of \
autoconf!<br><br>> The code that generates conftest.c does not provide for an \
argument to strerror. Why doesn't it? And how does the configure script \
succeed when compiling for x86?<br><br>If I recall correctly:<br>Because conftest.c \
doesn't include the .h file that declares strerror(),<br>and C doesn't have typesafe \
linkage, checking for the<br>presence of a function by linking to it with a totally \
bogus call<br>with no arguments should work fine.<br><br>It's not clear why the \
compiler is complaining -<br>did it somehow see a .h file that declared \
strerror()?<br><br>What compiler are you \
using?<br><br><br></div></div></div></div></div><br><br></div></div></div></body></html>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic