On Thu, Jan 22, 2009 at 9:42 AM, Ryan McDougall <[email protected]> wrote:
> On Wed, Jan 21, 2009 at 4:11 PM, Richard W.M. Jones <[email protected]> wrote:
>> On Wed, Jan 21, 2009 at 03:57:45PM +0200, Ryan McDougall wrote:
>>> dbus-binding-tool-glib.o: In function 
>>> `dbus_binding_tool_output_glib_server':
>>> /home/ryanm/Code/dbus-glib/dbus/dbus-binding-tool-glib.c:802:
>>> undefined reference to `_g_file_open_tmp'
>>
>> This is a strange one ..  Windows programs shouldn't be calling
>> "g_file_open_tmp" directly.  In the glib header file glib/gfileutils.h
>> there is this:
>>
>>  #ifdef G_OS_WIN32
>>  #define g_file_test g_file_test_utf8
>>  #define g_file_get_contents g_file_get_contents_utf8
>>  #define g_mkstemp g_mkstemp_utf8
>>  #define g_file_open_tmp g_file_open_tmp_utf8
>>  #endif
>>
>> G_OS_WIN32 ought to be defined automatically.  I guess you could try
>> defining it manually for this one file.
>>
>> I have verified that we export "g_file_open_tmp_utf8" in our DLL.
>>
>>> /home/ryanm/Code/dbus-glib/dbus/dbus-binding-tool-glib.c:830:
>>> undefined reference to `_g_spawn_async_with_pipes'
>>
>> Same situation as above.  The link should be happening with the
>> internal symbol "g_spawn_async_with_pipes_utf8".
>>
>>> dbus-glib-tool.o: In function `main':
>>> /home/ryanm/Code/dbus-glib/dbus/dbus-glib-tool.c:392: undefined
>>> reference to `_g_io_channel_new_file'
>>
>> As above ("g_io_channel_new_file_utf8").
>>
>>> ./.libs/libdbus-gtool.a(dbus-gloader-expat.o): In function
>>> `description_load_from_file':
>>> /home/ryanm/Code/dbus-glib/dbus/dbus-gloader-expat.c:176: undefined
>>> reference to `_g_file_get_contents'
>>
>> As above ("g_file_get_contents_utf8").
>>
>> Rich.
>
> Very strange. Putting in the following silly hack just under the headers:
>
> #ifdef G_OS_WIN32
> #define _FOO_ windows;
> #else
> #define _FOO_ notwindows;
> #endif
> _FOO_
>
> results in:
>
> i686-pc-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I..
> -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include
> -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
> -DDBUS_COMPILATION=1 -DDBUS_LOCALEDIR=\"/usr/local/share/locale\"
> -DDBUS_API_SUBJECT_TO_CHANGE=1   -g -O2 -Wall -Wchar-subscripts
> -Wmissing-declarations -Wmissing-prototypes -Wnested-externs
> -Wpointer-arith -Wcast-align -Wfloat-equal -Wsign-compare -MT
> dbus-binding-tool-glib.o -MD -MP -MF .deps/dbus-binding-tool-glib.Tpo
> -c -o dbus-binding-tool-glib.o dbus-binding-tool-glib.c
> dbus-binding-tool-glib.c:48: warning: data definition has no type or
> storage class
> dbus-binding-tool-glib.c:48: warning: type defaults to 'int' in
> declaration of 'notwindows'
>
> Which means G_OS_WIN32 is not being set...
>
> Ideas where is should be set, or what's gone wrong?
>
> Cheers,
>

Ok, so the correct information is set in glibconfig.h, as part of the
glib configure process.

The build include is in /usr/lib/glib-2.0/include/glibconfig.h
The host include is in
/usr/i686-pc-mingw32/sys-root/mingw/lib/glib-2.0/include/glibconfig.h

G_OS_UNIX is defined in the above code and G_OS_WIN32 is not.

I think its fairly clear from the -I statements that the wrong header
is being picked up.

I need to port the AC file to pick things up better. Ideas?

Cheers,
_______________________________________________
fedora-mingw mailing list
[email protected]
https://admin.fedoraproject.org/mailman/listinfo/fedora-mingw

Reply via email to