[racket-dev] Build failure on OS X
The recent change to `configure' makes it use `pkg-config' to add -L
and -I flags for libffi. But those should flags be added consistently;
that is, you should end up with a build that uses `libiconv' from
macports.
Did you run `configure' in a fresh build directory? If not, maybe you
have files leftover from a previous build that had different flags from
`configure'?
If not, can you show the compile line for "string.c"?
At Thu, 21 Apr 2011 22:01:31 -0400, Eric Dobson wrote:
> I don't have any *FLAGS variables set in my environment when I run configure or
> make. But I do have libiconv installed through macports. It was out of date,
> and I upgraded it, but now I am getting a different message:
>
> gcc -o Racket.framework/Versions/5.1.1.3/Racket -m32 -pthread -framework
> CoreFoundation -dynamiclib -all_load libracket.a libmzgc.a -ldl -lm -liconv
> -L/opt/local/lib -lffi
> ld: warning: in /opt/local/lib/libiconv.dylib, file was built for unsupported
> file format which is not the architecture being linked (i386)
> Undefined symbols:
> "_iconv_close", referenced from:
> _do_convert in libracket.a(string.o)
> _do_convert in libracket.a(string.o)
> _do_convert in libracket.a(string.o)
> _string_to_from_locale in libracket.a(string.o)
> _string_to_from_locale in libracket.a(string.o)
> _string_to_from_locale in libracket.a(string.o)
> _close_converter in libracket.a(string.o)
> "_iconv_open", referenced from:
> _do_convert in libracket.a(string.o)
> _string_to_from_locale in libracket.a(string.o)
> _string_to_from_locale in libracket.a(string.o)
> _scheme_open_converter in libracket.a(string.o)
> "_iconv", referenced from:
> _do_convert in libracket.a(string.o)
> ld: symbol(s) not found
> collect2: ld returned 1 exit status
>
> (Note the warning about a different architecture.)
>
> I assume that If I tell it to use the system version of iconv, things will work
> out. But how do I tell it to ignore the bad version?
>
> -Eric
>
>
>
> On Apr 21, 2011, at 9:48 PM, Matthew Flatt wrote:
>
> > It looke like you have `-L/opt/local/lib' in your LDFLAGS
> > configuration. Do you also have `-I/opt/local/include' in CPPFLAGS?
> >
> > You machine is probably like mine, where you have two installations of
> > libiconv, and this error happens when the C headers of one installation
> > get mixed with the lib of the other.
> >
> > At Thu, 21 Apr 2011 21:42:54 -0400, Eric Dobson wrote:
> >> I tried to build the git HEAD today and ran into problems. During the make
> >> process, it fails to create the framework with the following error message:
> >>
> >> gcc -o Racket.framework/Versions/5.1.1.3/Racket -m32 -pthread -framework
> >> CoreFoundation -dynamiclib -all_load libracket.a libmzgc.a -ldl -lm
> -liconv
> >> -L/opt/local/lib -lffi
> >> Undefined symbols:
> >> "_iconv_close", referenced from:
> >> _do_convert in libracket.a(string.o)
> >> _do_convert in libracket.a(string.o)
> >> _do_convert in libracket.a(string.o)
> >> _string_to_from_locale in libracket.a(string.o)
> >> _string_to_from_locale in libracket.a(string.o)
> >> _string_to_from_locale in libracket.a(string.o)
> >> _close_converter in libracket.a(string.o)
> >> "_iconv_open", referenced from:
> >> _do_convert in libracket.a(string.o)
> >> _string_to_from_locale in libracket.a(string.o)
> >> _string_to_from_locale in libracket.a(string.o)
> >> _scheme_open_converter in libracket.a(string.o)
> >> "_iconv", referenced from:
> >> _do_convert in libracket.a(string.o)
> >> ld: symbol(s) not found
> >> collect2: ld returned 1 exit status
> >>
> >> Does anyone know what might cause this?
> >>
> >> Thanks,
> >> Eric
> >>
> >>
> >> _________________________________________________
> >> For list-related administrative tasks:
> >> http://lists.racket-lang.org/listinfo/dev