I am using the open-source Waveform Database (WFDB) software package to analyze physiological signals for a current research project. I was required to code something quickly, as research usually goes, and I had abandoned compiling WFDB for OS X on the first compiler error. I am returning to resolve the issue as some of my cycles are freed. I think this information might save you, the WFDB Googler, a bit of time.
The solution is simple. Let us note the error: '__curl_rule_01__' declared as an array with a negative size. That's interesting. My first thought, having handled similar errors before, was that I could approach this by either opening up /opt/local/include/curl/curlbuild.h and swapping 8 to 4 (as this is an issue with building for 32/64 archs) or I could build curl from source like I did with Linux.
Both paths are overkill and should not be followed. All you need to do is open darwin.def and darwin-slib.def in your favorite editor and remove all -arch i386 and -arch PPC strings. Now, the original documentation only calls for the removal of -arch PPC. That's what lead me away from the conf directory and into the rabbit hole options mentioned above.
I have linked the patches below for your ease of use. Though, a simple sed script would work wonders! Cheers.
https://arbitrary-blog-execution.googlecode.com/svn/trunk/patches/darwin-slib.def.patch
https://arbitrary-blog-execution.googlecode.com/svn/trunk/patches/darwin.def.patch
Interestingly this did not solve the problem for me. I had to go into the makefile and remove references to i386 after which it worked
ReplyDeleteWhat exactly did you do to "remove references"? When I comment MFLAGS = -arch i386 -arch x86_64 nothing happens - I still get the error after sudo make install.
DeleteI have exactly the same issue. '-arch i386 -arch ppc' was not found in dawin.def/darwin-slib.def. So I tried to remove '-arch i386' in configure script that resulted in bunch of warnings and test failure as follows.
DeleteFiles lcheck.log and expected/lcheck.log differ: test failed
Files lcheck_cal and expected/lcheck_cal differ: test failed
Files 100s.chk and expected/100s.chk differ: test failed
Files 100z.dat and expected/100z.dat differ: test failed
Any ideas?
Thanks for the post! I also had to go inside every Makefile and remove the "-arch i386" flag as well as comment out the line "WMFLAGS = -arch i386" - Emmanuel
ReplyDelete