texlive_base failed to build
Frank J. R. Hanstick
trog24 at comcast.net
Sat Oct 18 09:51:26 PDT 2008
Hello,
I completely uninstalled texlive and texlive_base and then installed
using the -d and outputting to a log file. As I previously noted and
subsequently suspected,, xetexdir/XeTeXFontMgr_Mac.mm is the only
file that uses an unprefixed gcc to compile. The log file
verification is as follows:
gcc -ObjC++ -I../../libs/icu-xetex/common -I./../../libs/icu-xetex/
common -I./../../libs/icu-xetex/layout -DLE_USE_CMEMORY -I/opt/local/
include -I/opt/local/include/freetype2 -DHAVE_CONFIG_H -I. -I. -I.. -
I./.. -isystem/opt/local/include -I../../libs/obsdcompat -I../../
libs/obsdcompat/.. -I./../../libs/obsdcompat -I./../../libs/
obsdcompat/.. -DXETEX_MAC -c xetexdir/XeTeXFontMgr_Mac.mm -o
XeTeXFontMgr_Mac.o
The situations is that with /opt/local/bin at the head of the path,
the search for gcc will result in the /opt/local/bin gcc being used
if installed which will be gcc-mt-4.3.2.
To verify that the command is generated during ./configure, I
unpacked texlive_base in my desktop directory, found the directory,
and ensured that Makefile did not exist. I then ran ./configure and
generated Makefile. The generated Makefile had the unprefixed
command. This looks like an author problem because I do not want to
mess around with the creation of Makefile.
Frank
On Oct 18, 2008, at 2:24 AM, Ryan Schmidt wrote:
>
> On Oct 18, 2008, at 04:13, Frank J. R. Hanstick wrote:
>
>> On Oct 18, 2008, at 1:05 AM, Ryan Schmidt wrote:
>>
>>> On Oct 17, 2008, at 18:15, Frank J. R. Hanstick wrote:
>>>
>>>> On Oct 17, 2008, at 2:29 PM, Bryan Blackburn wrote:
>>>>
>>>>> On Fri, Oct 17, 2008 at 02:03:56PM -0700, Frank J. R. Hanstick
>>>>> said:
>>>>>
>>>>>> ~ frank$ gcc_select -l
>>>>>> Available versions:
>>>>>> mp-gcc43
>>>>>>
>>>>>> ~ frank$ which gcc
>>>>>> /opt/local/bin/gcc
>>>>>
>>>>> Sounds like some part of the texlive_base build process is
>>>>> ignoring
>>>>> when
>>>>> port sets CC to /usr/bin/gcc-4.0, but only when compiling that one
>>>>> file.
>>>>> Since it's using just a bare 'gcc' it's picking up your MacPorts-
>>>>> installed
>>>>> gcc43 which doesn't support the -ObjC++ option (that option is
>>>>> only
>>>>> available in Apple's gcc).
>>>>>
>>>>> For now, you should be able to get it to build by using gcc_select
>>>>> to use
>>>>> gcc40, though your '-l' output above doesn't show it, so make sure
>>>>> you have
>>>>> the current gcc_select port (0.1_1).
>>>>
>>>> The path structure points to /opt/local/bin first instead of /usr/
>>>> bin; therefore, I pickup the gcc_select in /opt/local/bin
>>>> gcc_select
>>>> which is what I want so long as I do not hit -obj/C++. I had read
>>>> somewhere that MacPort always used /usr/bin/gcc and bypassed
>>>> gcc_select. I gather that this is not true.
>>>
>>> MacPorts causes Apple's GCC to always be used by setting the CC
>>> variable. If the port ignores the CC variable, as some part of
>>> texlive_base appears to, then MacPorts cannot guarantee what GCC
>>> will be used. This would appear to be a bug in texlive_base which
>>> would be best reported to its authors. Or if you can work out a
>>> patch to fix it, we can apply the patch in the port, and then
>>> report it to the authors of the software.
>>
>> I reconfigured my system to point to gcc-4.0.1 and successfully
>> got through texlive. The installation was completed successfully.
>>
>> In going through the sequence I passed you, I noticed the very
>> first error line was:
>>
>> Error: Target org.macports.build returned: shell command " cd "/
>> opt/local/var/macports/build/
>> _opt_local_var_macports_sources_rsync.macports.org_release_ports_tex_
>> texlive_base/work/texlive_base-2007" && make all " returned error 2
>
> That is how MacPorts tells you an error occurred. The lines below
> that come from the software being installed and tell you what error
> occurred.
>
>> Since I do not have verbage before this point, I wonder what in
>> gcc-mp-4.3.2 would cause this error. The build did continue after
>> this error in any case. Even then, there were several
>> compilations prior to the gcc -OBjC++ call (xetexini.c, xetex0.c,
>> xetex1.c, xetex2.c, xetexextra.c, xetexdir/trans.c, xetexdir/
>> XeTeX_ext.c, and xetexdir/XeTeX_mac.c) that used /usr/bin/gcc-4.0
>> as advertised. It was only when it came time to compile xetexdir/
>> XeTeXFontMgr_Mac.mm that the non prefixed gcc was called instead
>> of the prefixed /usr/bin/gcc-4.0. This sounds like a make file
>> error which could have resulted from running configure. Can I
>> assume that in your port, you use the configure supplied by the
>> authors to create the make files?
>
> The texlive_base port does use the configure script provided with
> the software. You can run "sudo port clean texlive_base" followed
> by "sudo port -d install texlive_base" to see that and all other
> commands that get run, if you like.
>
More information about the macports-users
mailing list