This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: libuuid


René,

[snip]

>> uuid.o:uuid.c:(.text+0x174): undefined reference to `_uuid_unparse_lower'
>> uuid.o:uuid.c:(.text+0x2fd): undefined reference to `_uuid_unparse_lower'
>> collect2: ld returned 1 exit status
>> dllwrap: gcc exited with status 1
>
> Wrong library.
>
> The problem is, where are those functions defined?  There are 2 uuid libraries,
> one is /usr/lib/w32api/libuuid.a, but that doesn't have functions that start
> with uuid.  The other is /usr/lib/e2fsprogs/libuuid.a and ... bingo! that one
> has the uuid_compare, etc. functions.
>
> So change the command, and BTW libpostgres is also static, so my next guess is:
>
> dllwrap -o uuid.dll --def uuid.def uuid.o
>   /usr/lib/postgresql/pgxs/src/../../src/utils/dllinit.o -L/usr/lib
>   -L/usr/lib/e2fsprogs -Wl,-Bstatic -lpostgres -luuid -Wl,-Bdynamic

Ok - much better. Thank you very much. This time bombed out with dllinit.o not
found, so changed that path:

dllwrap -o uuid.dll --def uuid.def uuid.o
  /usr/lib/postgresql/pgxs/src/utils/dllinit.o -L/usr/lib
  -L/usr/lib/e2fsprogs -Wl,-Bstatic -lpostgres -luuid -Wl,-Bdynamic

and I now only get:

uuid.o:uuid.c:(.text+0x174): undefined reference to `_uuid_unparse_lower'
uuid.o:uuid.c:(.text+0x2fd): undefined reference to `_uuid_unparse_lower'
collect2: ld returned 1 exit status
dllwrap: gcc exited with status 1

> Another hint of what may be wrong was on your first message, the "warning:
> implicit declaration of function `uuid_unparse_lower'" means that the code
> is so bad that they didn't even include the header.

Their uuid.c does include <uuid/uuid.h>, but /usr/include/uuid/uuid.h doesn't
include the uuid_unparse_lower function; nor does

strings /usr/lib/e2fsprogs/libuuid.a | grep lower

return anything.

Latest Cygwin version of e2fsprogs is 1.35-3, but the latest release on
Sourceforge is 1.40.2. Downloaded that release, checked lib/uuid.h and the new
uuid_unparse_lower function is there. Tried building the whole packge,
but it doesn't build out of the box (error at the bottom if anyone's
interested) - however it does
build libuuid. So, updated /usr/include/uuid/* and
/usr/lib/e2fsprogs/libuuid.a,
and now it builds and works perfectly.

Thanks very much for your help,

Ant.


[ latest e2fsprogs build errors. configure runs fine; make bombs out with:

message.o: In function `print_e2fsck_message':
/home/jon/src/e2fsprogs-1.40.2/e2fsck/message.c:307: undefined reference to
  `_inode_uid'
/home/jon/src/e2fsprogs-1.40.2/e2fsck/message.c:310: undefined reference to
  `_inode_gid'
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../libintl.a(dcigettext.o):dcigettext.c:(.text+0x6e1):
  undefined reference to `_libiconv_open'
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../libintl.a(dcigettext.o):dcigettext.c:(.text+0x8e3):
  undefined reference to `_libiconv'
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../libintl.a(dcigettext.o):dcigettext.c:(.text+0x9ab):
  undefined reference to `_libiconv_open'
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../libintl.a(relocatable.o):relocatable.c:(.text+0x57):
  undefined reference to `_libiconv_set_relocation_prefix'
collect2: ld returned 1 exit status
make[2]: *** [e2fsck.static] Error 1
make[2]: Leaving directory `/home/jon/src/e2fsprogs-1.40.2/e2fsck'
make[1]: *** [all-progs-recursive] Error 1
make[1]: Leaving directory `/home/jon/src/e2fsprogs-1.40.2'
make: *** [all] Error 2

]

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]