octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Building on OSX without package managers


From: Richard Campbell
Subject: Re: Building on OSX without package managers
Date: Tue, 25 Jan 2011 00:33:00 -0500

On Jan 25, 2011, at 12:21 AM, Richard Campbell wrote:

> 
> On Jan 25, 2011, at 12:08 AM, John W. Eaton wrote:
> 
>> On 24-Jan-2011, Richard Campbell wrote:
>> 
>> | > What is in your config.h file?  For F77_FUNC, I would expect something
>> | > like
>> | > 
>> | >  #define F77_FUNC(name,NAME) name ## _
>> | > 
>> | > but it looks like it is not being defined, since there is a
>> | > diagnostic about it as if it is not being expanded by the
>> | > preprocessor.
>> | > 
>> | > jwe
>> | 
>> | cat config.h | grep -B 2 -i f77_func
>> | /* Define to a macro mangling the given C identifier (in lower and upper
>> |    case), which must not contain underscores, for linking with Fortran. */
>> | /* #undef F77_FUNC */
>> | 
>> | /* As F77_FUNC, but for C identifiers containing underscores. */
>> | /* #undef F77_FUNC_ */
>> 
>> That should not happen.
>> 
>> In your config.log file, there should be a line like this:
>> 
>> configure:28708: checking for Fortran 77 name-mangling scheme
>> 
>> followed by the compile commands tried, information about failed
>> tests, and then the result.  What do you have for that?  Send
>> the config.log output to the list if you like, or just this section.
>> If you send the whole file, please gzip it before you send it as the
>> config.log file itself is about 1.8MB, but the compressed file is only
>> about 100k.
>> 
>> jwe
> 
> 
> Sure enough, I got the following:
> 
> configure:10333: checking for Fortran 77 name-mangling scheme
> configure:10346: gfortran -c -O conftest.f >&5
> configure:10346: $? = 0
> configure:10387: gcc -o conftest -g -O2  -I/usr/X11/include/freetype2 
> -I/usr/X11/include  conftest.c cfortran_test.o -lz -lm  -L/usr/X11/lib 
> -lfreetype -lz -Wl,-framework,CoreServices -Wl,-framework,ApplicationServices 
> -Wl,-framework -Wl,OpenGL  -L/usr/X11/lib 
> -L/usr/local/lib/gcc/i686-apple-darwin8/4.2.3 
> -L/usr/local/lib/gcc/i686-apple-darwin8/4.2.3/../../.. -lz -lm -lfreetype 
> -lgfortranbegin -lgfortran >&5
> ld: warning: in cfortran_test.o, file was built for i386 which is not the 
> architecture being linked (x86_64)
> ld: warning: in 
> /usr/local/lib/gcc/i686-apple-darwin8/4.2.3/libgfortranbegin.a, file was 
> built for unsupported file format which is not the architecture being linked 
> (x86_64)
> ld: warning: in /usr/local/lib/gcc/i686-apple-darwin8/4.2.3/libgcc.a, file 
> was built for unsupported file format which is not the architecture being 
> linked (x86_64)
> Undefined symbols:
>  "_foobar", referenced from:
>      _main in cc0BG9Jy.o
> ld: symbol(s) not found
> collect2: ld returned 1 exit status
> 
> which led me to believe that --build=i686-apple-darwin10 wasn't sufficient to 
> tell it not to compile as 64-bit. I tried again with "CFLAGS=-arch i686" and 
> "FFLAGS=-arch i686" and it didn't give the same error. However, I'm now 
> getting "configure: WARNING: I need GNU Readline 4.2 or later" since I 
> compiled readline as 64-bit earlier. I'll try to compile readline as a 32 bit 
> binary.
> 
> I think the root of the issue might be that newer Macs (as in newer hardware, 
> not newer OS) want to default to compiling as 64 bit rather than 32 bit.

Okay, now that I built readline as a universal binary, and define the FFLAGS 
and CFLAGS as both including "-arch i686" it makes it much further, but 
eventually fails with a LOT of lines that look like the following:

ld: warning: in misc/pic/cquit.o, file was built for i386 which is not the 
architecture being linked (x86_64)

I am compiling with the following:

export FFLAGS="-arch i686"
export CFLAGS="-arch i686"
./configure --build=i686-apple-darwin10
make

reply via email to

[Prev in Thread] Current Thread [Next in Thread]