| [ Return to Bugs & Features | Roadmap 1.3 | SVN ⇄ GIT ]
STR #3071
Application: | FLTK Library |
Status: | 2 - Closed w/o Resolution |
Priority: | 3 - Moderate, e.g. unable to compile the software |
Scope: | 2 - Specific to an operating system |
Subsystem: | MacOS |
Summary: | Build Error, OS X gcc 4.8 |
Version: | 1.3.2 |
Created By: | khouli |
Assigned To: | manolo |
Fix Version: | Unassigned |
Update Notification: | |
Trouble Report Files:
|
#1 | khouli 19:48 Apr 23, 2014 |
| foo.txt 90k | |
Trouble Report Comments:
|
#1 | khouli 05:55 Apr 23, 2014 |
| Build commands:
autoconf ./configure make
The errors begin with these lines:
Linking fluid... ld: warning: ld: warning: ignoring file ../lib/libfltk.a, file was built for archive which is not the architecture being linked (x86_64): ../lib/libfltk.aignoring file ../lib/libfltk_images.a, file was built for archive which is not the architecture being linked (x86_64): ../lib/libfltk_images.a
Undefined symbols for architecture x86_64:
...
This is followed by many more undefined symbols errors. | |
|
#2 | greg.ercolano 11:39 Apr 23, 2014 |
| Have you ruled out leftover lib files from a previous build by rebuilding with:
make distclean; make
If that's not it, then please try immediately after the above:
1) Edit the makeinclude file and comment out the .SILENT line
2) Rebuild with the following command, which should capture all the compiler output:
( make clean && ./configure && make ) > foo.txt 2>&1
3) Attach the resulting foo.txt file to this STR (assuming it shows the problem in question, and didn't stop for some odd reason)
4) Please supply the operating system version (OSX #.#) and any details about the compiler (is it the default compiler that came with the OS, was it upgraded, etc) | |
|
#3 | khouli 20:06 Apr 23, 2014 |
| How my OS X describes itself:
System Version: OS X 10.9.2 Kernel Version: Darwin 13.1.0
The compiler being using is gcc 4.8 installed using Homebrew. How g++ 4.8 describes itself:
$ g++-4.8 -v Using built-in specs. COLLECT_GCC=g++-4.8 COLLECT_LTO_WRAPPER=/usr/local/Cellar/gcc48/4.8.2/libexec/gcc/x86_64-apple-darwi n13.0.0/4.8.2/lto-wrapper Target: x86_64-apple-darwin13.0.0 Configured with: ../configure --build=x86_64-apple-darwin13.0.0 --prefix=/usr/local/Cellar/gcc48/4.8.2 --enable-languages=c,c++,fortran,java,objc,obj-c++ --program-suffix=-4.8 --with-gmp=/usr/local/opt/gmp⇉ Thread model: posix gcc version 4.8.2 (GCC)
This seems like a clue. libfltk.a considers the file formats to be "mach-o-x86-64" rather than the "x86_64" in the error message.
fltk-1.3.2/lib$ objdump -a libfltk.a | grep 'file format' Fl_cocoa.o: file format mach-o-x86-64 Fl_Quartz_Printer.o: file format mach-o-x86-64 Fl_Native_File_Chooser_MAC.o: file format mach-o-x86-64 more object files...
ld only list support for x86_64 on my system.
$ ld -v @(#)PROGRAM:ld PROJECT:ld64-236.4 configured to support archs: armv6 armv7 armv7s arm64 i386 x86_64 armv6m armv7m armv7em LTO support using: LLVM version 3.4svn | |
|
#4 | ianmacarthur 03:27 Sep 05, 2014 |
| I'm inclined to say I don't think this is a fltk issue, is it? Sounds like some issue with the tools, rather.
Can we see where we are on this and perhaps consider closing it if there's "no fault found"...? | |
|
#5 | manolo 02:53 Apr 25, 2015 |
| It is not possible to support the building of FLTK with non-Apple compilers because Mac OS X objective-c headers now use Apple-specific language extensions (particularly, blocks) that these compilers do not accept.
It is expected that user applications can be build with non Apple compilers. If the OP encounters problems in such operation, a new STR may be submitted. | |
[ Return to Bugs & Features ]
|
| |