2008/10/16 Vincent Torri <[EMAIL PROTECTED]>:
>
>
> On Thu, 16 Oct 2008, Lionel ORRY wrote:
>
>> that works perfectly. Remains only the problem for autoreconf. BTW, I
>> noticed Evil seems to be the only library in the EFL using
>> autoreconf.. The others have autogen.sh call the autofoo tools
>> subsequently. Maybe that would apply to Evil as well...
>
> autoreconf does what other autogen.sh does. It's sufficient for my purposes
>
>> Now that the EFL are Eina-dependent, here is a _really dirty_ patch to
>> make Eina compile on WinXP. I added guards to prevent the
>> eina_benchmark compilation when asked because gcc threw me an internal
>> error in eina_benchmark_init()...
>> The dirtiest part of the patch is declaring eina_mempool_register and
>> eina_mempool_unregister with EAPI, because it helps passing the link
>> stage. I don't know much about the differences between .dll and .so
>> (there must me many), but gcc was not happy with these functions
>> prototypes. I don't know exactly how to correct that, it's just a
>> workaround.
>
> the patch is indeed dirty :) Try with my fixes in eina, now. It compiles
> fine with mingw32ce. I didn't try with mingw yet
>
> If you still have link problems with eina_mempool.c, please give the exact
> error message, it can help me.

Here is the output message :

$ make
make  all-recursive
make[1]: Entering directory `/home/liorry/eina'
Making all in src
make[2]: Entering directory `/home/liorry/eina/src'
Making all in lib
make[3]: Entering directory `/home/liorry/eina/src/lib'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/home/liorry/eina/src/lib'
Making all in include
make[3]: Entering directory `/home/liorry/eina/src/include'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/home/liorry/eina/src/include'
Making all in modules
make[3]: Entering directory `/home/liorry/eina/src/modules'
Making all in mp
make[4]: Entering directory `/home/liorry/eina/src/modules/mp'
Making all in chained_pool
make[5]: Entering directory `/home/liorry/eina/src/modules/mp/chained_pool'
/bin/sh ../../../../libtool --tag=CC --tag=disable-static  --mode=link
gcc -std=gnu99  -O3 -s -mms-bitfields -march=i686 -no-undefined
-Wl,--enable-auto-import -module -avoid-version -L/usr/local/lib -o
eina_chained_mempool.la -rpath /usr/local/lib/eina/mp/
eina_chained_mempool_la-eina_chained_mempool.lo
../../../../src/lib/libeina.la  -LD:/msys/1.0/local/lib -levil -ldl
-lm
rm -fr  .libs/eina_chained_mempool.dll.a
gcc -shared  .libs/eina_chained_mempool_la-eina_chained_mempool.o
-L/usr/local/lib ../../../../src/lib/.libs/libeina.dll.a
-LD:/msys/1.0/local/lib /usr/local/lib/libevil.dll.a
/usr/local/lib/libdl.dll.a  -mms-bitfields -march=i686
-Wl,--enable-auto-import -o .libs/eina_chained_mempool.dll
-Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker
.libs/eina_chained_mempool.dll.a
Creating library file: .libs/eina_chained_mempool.dll.a
.libs/eina_chained_mempool_la-eina_chained_mempool.o:eina_chained_mempool.c:(.text+0x27e):
undefined reference to `_eina_mempool_register'
.libs/eina_chained_mempool_la-eina_chained_mempool.o:eina_chained_mempool.c:(.text+0x29e):
undefined reference to `_eina_mempool_unregister'
collect2: ld returned 1 exit status
make[5]: *** [eina_chained_mempool.la] Error 1
make[5]: Leaving directory `/home/liorry/eina/src/modules/mp/chained_pool'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory `/home/liorry/eina/src/modules/mp'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/liorry/eina/src/modules'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/liorry/eina/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/liorry/eina'
make: *** [all] Error 2


It seems like since a module uses these functions, they need to be
dllexport'd or else they can't be found when linking the module. That
makes sense in a way, but I don't know how the linker resolves this
for .so files. I also noticed a FIXME in
include/eina_inline_mempool_x:

/* FIXME Do we actually need to export this functions?? */
Eina_Bool eina_mempool_register(Eina_Mempool_Backend *be);
void eina_mempool_unregister(Eina_Mempool_Backend *be);

Maybe that can help...

>
>> Added another small patch to make Evas GLEW engine compile again (need
>> to include glew.h before gl.h).
>
> strange, I thought i have already committed that fix. Maybe i have forgotten
> that. I'll fix that later.
>
> Vincent
>

Lionel

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to