On Jan 24, 2010, at 3:28 PM, cstrato wrote: > Dear Kasper, > > You are right. Since ROOT supports the CC, CXX, F77 and LD flags I did: > ./configure macosx64 --with-cxx="/usr/bin/g++-4.2 -arch x86_64" > --with-f77="/usr/bin/gfortran-4.2 -arch x86_64" >
You don't really need the override - it works without and they add -m64 anyway so the -arch gets essentially ignored. > The error was still the same: > i686-apple-darwin9-g++-4.2.1: libgfortran.dylib: No such file or directory > > However, when I replaced in the Makefile.macosx64: > F77LIBS := $(shell $(F77) -m64 -print-file-name=libgfortran.dylib) > F77LIBS += $(shell $(F77) -m64 -print-file-name=libgfortranbegin.a) > with: > F77LIBS := $(shell $(F77) -m64 -print-file-name=libgfortranbegin.a) You found the right spot but your fix is wrong - just remove the two lines, they are superfluous and only cause trouble. > the error disappeared, and I could finish the compilation. > > However, now I got a link-error: > ld warning: in /usr/lib/gcc/i686-apple-darwin9/4.2.1/libgfortranbegin.a, file > is not of required architecture > Undefined symbols: > "_main", referenced from: > start in crt1.10.5.o > Your'e getting the 32-bit version (of the wrong file - see above). It should really be ../4.2.1/x86_64/lib... > I am not sure what this error means since Makefile.macosx64 contains: > F77FLAGS = -m64 -std=legacy > > Could it be that libgfortranbegin.a can only be used for 32bit compilation? > No, you're picking the wrong one - there is one for each architecture. > Furthermore, I still have the question (and hopefully Simon will answer it): > Why does gfortran-4.2-5564-darwin9.tar.gz not contain any libgfortran.dylib > files? > Because it's using a static library. > Interestingly, when googling "/usr/lib/libgfortran.dylib" I get the answer > that NO results were found, while googling "/usr/local/lib/libgfortran.dylib" > gives many results. Thus it seems that there will never be any > libgfortran.dylib in "/usr/lib/"!? Nope - OS X has no Fortran by default. Cheers, Simon > I must admit that I do not understand this issue. > > Best regards > Christian > > > Kasper Daniel Hansen wrote: >> On Jan 23, 2010, at 8:37 AM, cstrato wrote: >> >> >>> Dear Kasper, >>> >>> Thank you for your suggestion, I did indeed use gcc 4.0. >>> Since gcc_select does no longer exist on Leopard I had to do: >>> cd /usr/bin >>> sudo ln -s gcc-4.2 gcc >>> sudo ln -s g++-4.2 g++ >>> sudo ln -s gcov-4.2 gcov >>> >> >> I am not sure this is advisable in general. When I compile stuff with >> gcc-4.2 I usually explicitly set >> CC=/usr/bin/gcc-4.2 >> when I run configure. For example, my entire configure line for R on my >> macbook is >> ../${SRCDIR}/configure SHELL='/bin/bash' \ >> CC="/usr/bin/gcc-4.2 -arch x86_64 -std=gnu99" \ >> CFLAGS="-g -O2 -std=gnu99 -march=nocona" \ >> CXX="/usr/bin/g++-4.2 -arch x86_64" \ >> CXXFLAGS="-g -O2 -march=nocona" \ >> OBJC="/usr/bin/gcc-4.2 -arch x86_64" \ >> F77="/usr/bin/gfortran-4.2 -arch x86_64" \ >> FFLAGS="-g -O2 -march=nocona" \ >> FC="/usr/bin/gfortran-4.2 -arch x86_64" \ >> FCFLAGS="-g -O2 -march=nocona" \ >> --x-includes=/usr/X11/include --x-libraries=/usr/X11/lib \ >> --with-system-zlib \ >> --with-blas='-framework vecLib' --with-lapack >> Of course this requires that ROOT uses the CC/CFLAGS macros, but that >> should be pretty standard if it uses autoconf. >> >> >>> Sadly, compiling ROOT resulted still in the same error: >>> i686-apple-darwin9-g++-4.2.1: libgfortran.dylib: No such file or directory >>> >>> When I check the location for gfortran-4.2.3.dmg I get: >>> $ cd /usr/local/lib/gcc/i686-apple-darwin8/4.2.3/../../../x86_64 >>> $ ls -al >>> total 32 >>> drwxrwxr-x 6 root wheel 204 Jan 21 20:26 . >>> drwxr-xr-x 35 root wheel 1190 Jan 21 20:26 .. >>> lrwxr-xr-x 1 root wheel 26 Jan 21 20:26 libgfortran.2.0.0.dylib -> >>> ../libgfortran.2.0.0.dylib >>> lrwxr-xr-x 1 root wheel 23 Jan 21 20:26 libgfortran.2.dylib -> >>> libgfortran.2.0.0.dylib >>> lrwxr-xr-x 1 root wheel 16 Jan 21 20:26 libgfortran.a -> >>> ../libgfortran.a >>> lrwxr-xr-x 1 root wheel 23 Jan 21 20:26 libgfortran.dylib -> >>> libgfortran.2.0.0.dylib >>> >>> This means that /usr/local/bin does contain libgfortran.dylib whereas >>> /usr/bin does not contain any of these files or links. >>> Does this mean that gfortran-4.2.3.dmg does contain these file for >>> libgfortran.dylib while gfortran-4.2-5564-darwin9.tar.gz does not contain >>> these files? >>> How do I get libgfortran.dylib? >>> >> >> Simon might be able to answer this better, but the general idea is that the >> >>> gfortran-4.2-5564-darwin9.tar.gz >>> >> installs into /usr/bin >> >>> gfortran-4.2.3.dmg >>> >> installs into /usr/local/bin. There is some logic here, the way I think >> about it is that the former is a direct extension of the Apple build. >> >> I would start from scratch, which means remove all traces of both gfortrans, >> install the 5564-tarball and then set the various macros as I have set it >> above for R (your exact values may of course be different depending on what >> machine etc. you are using). >> >> Kasper >> >> >> >>> BTW, I must apologize to Simon. On his website he lists the commands how to >>> install gfortran.tar.gz, but in the Tiger section, so I did miss it. >>> Nevertheless it would still be helpful for Mac users to know how to >>> uninstall it: >>> $ tar -tf gfortran.tar | sort -r | (cd /; xargs -p -n 1 rm -d) >>> >>> Best regards >>> Christian >>> >>> >>> Kasper Daniel Hansen wrote: >>> >>>> Remember that Apple has two version of GCC on Leopard: 4.0 and 4.2. You >>>> are using 4.0, you might want to switch to 4.2. In Tiger there used to be >>>> gcc_select (or select_gcc) that let you choose between 3.x and 4.0, I >>>> don't remember if that is still around on Leopard. >>>> >>>> The error seems to indicate that you need 4.2 in order to use Simon's >>>> gfortran. >>>> >>>> Kasper >>>> >>>> On Jan 22, 2010, at 16:04 PM, cstrato wrote: >>>> >>>> >>>>> Dear Simon, >>>>> >>>>> Thank you for this information. >>>>> >>>>> Now I have installed gfortran-4.2-5564-darwin9.tar.gz on Leopard and >>>>> tried to compile ROOT again, but this time I got the following error: >>>>> g++ -dynamiclib -single_module -undefined dynamic_lookup -install_name >>>>> @rpath/libminicern.so -O2 -m64 -o lib/libminicern.so >>>>> misc/minicern/src/cernlib.o -ldl misc/minicern/src/hbook.o >>>>> misc/minicern/src/kernlib.o misc/minicern/src/zebra.o libgfortran.dylib >>>>> /usr/lib/gcc/i686-apple-darwin9/4.2.1/libgfortranbegin.a >>>>> i686-apple-darwin9-g++-4.0.1: libgfortran.dylib: No such file or directory >>>>> >>>>> I know that this is not necessarily an R-related question but I would >>>>> greatly appreciate your help if possible (at least it is a Mac- and >>>>> somehow a BioC-related question). >>>>> >>>>> When I have tried to compile ROOT with gfortran-4.2.3.dmg I got the >>>>> following error: >>>>> gfortran -O2 -m64 -o bin/g2root main/src/g2root.o -Llib >>>>> lib/libminicern.so >>>>> /usr/local/lib/gcc/i686-apple-darwin8/4.2.3/../../../x86_64/libgfortran.dylib >>>>> /usr/local/lib/gcc/i686-apple-darwin8/4.2.3/x86_64/libgfortranbegin.a >>>>> -lm -Wl,-rpath,@loader_path/../lib -pthread -ldl >>>>> ld: -rpath can only be used when targeting Mac OS X 10.5 or later >>>>> >>>>> As you can see gfortran-4.2.3 could find libgfortran.dylib at: >>>>> /usr/local/lib/gcc/i686-apple-darwin8/4.2.3/../../../x86_64/libgfortran.dylib >>>>> while gfortran-4.2.4 could not find libgfortran.dylib. >>>>> >>>>> Thus maybe I did make a mistake when installing gfortran-4.2.4. Here is >>>>> what I did: >>>>> $ gunzip gfortran-4.2-5564-darwin9.tar.gz >>>>> $ sudo tar -xvf gfortran-4.2-5564-darwin9.tar -C / >>>>> $ sudo ln -s /usr/bin/gfortran-4.2 /usr/bin/gfortran >>>>> >>>>> Do you know what I need to do so that libgfortran.dylib can be found? >>>>> >>>>> P.S.:Since many Mac users are no Unix experts please allow me to suggest >>>>> to place on your website the commands to install/uninstall gfortran. I >>>>> have found the following website, which told me how to install gfortran >>>>> and how I could uninstall it: >>>>> http://www.webmo.net/support/fortran_osx.html >>>>> >>>>> Thank you in advance. >>>>> Best regards >>>>> Christian >>>>> >>>>> >>>>> >>>>> Simon Urbanek wrote: >>>>> >>>>>> On Jan 21, 2010, at 15:56 , cstrato wrote: >>>>>> >>>>>> >>>>>>> Dear Simon, >>>>>>> >>>>>>> One more question: >>>>>>> I have just unzipped gfortran-4.2-5564-darwin9.tar.gz. The version >>>>>>> gives: >>>>>>> Using built-in specs. >>>>>>> Target: i686-apple-darwin9 >>>>>>> Configured with: /Builds/gcc/gcc_42-5564/build/obj/src/configure >>>>>>> --disable-checking --enable-werror --prefix=/usr >>>>>>> --mandir=/usr/share/man --enable-languages=c,objc,c++,obj-c++,fortran >>>>>>> --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ >>>>>>> --with-gxx-include-dir=/usr/include/c++/4.0.0 --with-slibdir=/usr/lib >>>>>>> --build=i686-apple-darwin9 --host=i686-apple-darwin9 >>>>>>> --target=i686-apple-darwin9 >>>>>>> Thread model: posix >>>>>>> gcc version 4.2.1 (Apple Inc. build 5564) >>>>>>> >>>>>>> This means that this version seems to be older than the one I am using >>>>>>> now? >>>>>>> >>>>>>> >>>>>> No, that is GNU Fortran 4.2.4 that I was referring to. The "gcc version >>>>>> 4.2.1" comes from Apple's Xcode 3.1 gcc-4.2 branch since that is what >>>>>> they define - it just adds Fortran support to the existing gcc 4.2.1 >>>>>> branch of Apple that you installed as Xcode. However, the Fortran part >>>>>> is merged from the GNU Fortran 4.2.4 release - hence I refer to it as >>>>>> 4.2.4. >>>>>> >>>>>> Cheers, >>>>>> Simon >>>>>> >>>>>> >>>>>> >>>>>>> Simon Urbanek wrote: >>>>>>> >>>>>>>> On Jan 21, 2010, at 14:47 , cstrato wrote: >>>>>>>> >>>>>>>> >>>>>>>>> Dear all, >>>>>>>>> >>>>>>>>> I have the following problem: >>>>>>>>> My Bioconductor package xps requires both R and ROOT, whereby I >>>>>>>>> compile ROOT usually from source. Until now this has not been a >>>>>>>>> problem since I do all my development on Tiger. However, now I wanted >>>>>>>>> to compile ROOT on Leopard but failed since my gfortran compiler is >>>>>>>>> too old, see: >>>>>>>>> http://root.cern.ch/phpBB2/viewtopic.php?t=9721&sid=003b01ddb64f33dbe0c74651ee089c34 >>>>>>>>> To solve the problem I should upgrade to the latest version coming >>>>>>>>> with gcc-4.4 in Fink. >>>>>>>>> >>>>>>>> I would advise against that - using gcc from Fink usually calls for a >>>>>>>> disaster. The real solution is to fix their flags, but that's another >>>>>>>> story ... >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>>> Thus my question is: >>>>>>>>> Can I also use this version for R or do I need to use the version >>>>>>>>> downloaded from att? >>>>>>>>> >>>>>>>>> >>>>>>>> I would recommend using the Leopard gfortran 4.2.4 for Xcode 3.1.x >>>>>>>> from the Mac devel page >>>>>>>> http://r.research.att.com/tools/ >>>>>>>> which I assume is what you meant by the latter. >>>>>>>> >>>>>>>> Cheers, >>>>>>>> Simon >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> _______________________________________________ >>>>> R-SIG-Mac mailing list >>>>> R-SIG-Mac@stat.math.ethz.ch >>>>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac >>>>> >>>> >> >> >> > > _______________________________________________ R-SIG-Mac mailing list R-SIG-Mac@stat.math.ethz.ch https://stat.ethz.ch/mailman/listinfo/r-sig-mac