[Liboil] cygwin build error

Adam Smith adam-nospam at servfire.net
Sun Dec 17 08:58:22 PST 2006

Adam Smith wrote:
> Heyya list,
> Trying to build liboil under cygwin, I think my buildset is complete but
> I'm still getting an error that I can't pin down.  (Please be patient
> with this post, I know a bit about assembly and such but I haven't
> really gotten into the whole ELF/link/whatever bit yet, so I'm sort of
> stepping through the process in this email (so that you can correct me
> if I do something wrong))
> Running from CVS folder:
> $ bash -c 'echo autoreconf && autoreconf -i -f && echo configure &&
> ./configure && echo make && make -j3' > ../liboil-build.log 2>&1
> Seems to die when it goes to build .libs/cygoiltmp1-0.dll. Checking
> cygoiltmp1-0.dll.def shows (or rather doesn't show) the missing
> functions that the error is complaining about.
> Functions are from liboiltest.c, which appears to build fine (and
> oil_test_get_source_data and oil_test_get_value symbols are fine).
> Taking a look at the output from /usr/bin/nm -B  .libs/liboiltmp.o
> ./.libs/liboilfunctions.a | less and searching through for oil_test
> functions, the only two functions that get output with the format
> ADDRESSX T _symbol_goes_here are the _oil_test_get_source_data and
> oil_test_get_value.
> From the same nm output, in libref_la-wavelet.o, there does appear to
> be a reference (I'm assuming the U means reference for the linker) to
> _oil_test_get_arg_post_n and _oil_test_get_arg_stride functions.
> Going back to the liboiltmp.c source shows that it's just a stub that
> happens to have the two functions that actually work
> I don't know if this is the right fix, but I added the 3 other test
> function stubs to liboiltmp.c and tried again, and it at least compiled.
> (for cut and paste into liboiltmp.c):
> void oil_test_get_arg_pre_n(void) {}
> void oil_test_get_arg_post_n(void) {}
> void oil_test_get_arg_stride(void) {}
> I'll let you know how it goes once I've finished compiling pulseaudio
> with the change.
> _______________________________________________
> Liboil mailing list
> Liboil at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/liboil
Just thought I'd finish this up. Adding those couple of lines worked and 
pulseaudio appears to be linked and working with liboil apart from a 
warning error:
OIL: ERROR liboilcpu.c 549: oil_cpu_detect_kernel_support(): Operating 
system is not known to support SSE.  Assuming it does, which might cause 
It appears to be working fine though.

The patch against liboiltmp.c that I detailed above is attached.

-------------- next part --------------
--- liboil-0.3.10/liboil/liboiltmp.c	2006-01-21 11:36:47.000000000 +1000
+++ liboil/liboil/liboiltmp.c	2006-12-18 00:46:14.558125000 +1000
@@ -6,4 +6,7 @@
 void oil_random_argb(void) {}
 void oil_test_get_source_data(void) {}
 void oil_test_get_value(void) {}
+void oil_test_get_arg_pre_n(void) {}
+void oil_test_get_arg_post_n(void) {}
+void oil_test_get_arg_stride(void) {}

More information about the Liboil mailing list