[Liboil] cygwin build error

Adam Smith adam-nospam at servfire.net
Sat Dec 16 12:19:57 PST 2006

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

 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.

More information about the Liboil mailing list