Opened 11 years ago

Closed 11 years ago

Last modified 11 years ago

#41056 closed defect (invalid)

Mavericks + gcc48 build breaks + fixes

Reported by: davidfavor (David Favor) Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 2.2.0
Keywords: mavericks Cc: jeremyhu (Jeremy Huddleston Sequoia)
Port: gcc48

Description

1) After Mavericks upgrade /usr/include is gone

*) FIX: ln -sf $(xcrun --show-sdk-path)/usr/include /usr/include

2) couldn't open "/System/Library/Frameworks/Tcl.framework/Versions/8.5/Resources/tclIndex": no such file or directory

*) FIX: make Macports TCL (which is currently 8.6.1) a dependency + arrange for Macports TCL to be used instead of system TCL

It appears TCL is no longer provided as a Framework in OSX. There is no Tcl.framework directory or tclIndex file on the disk anymore.

Attachments (2)

gcc48-missing-tcl.log (5.3 MB) - added by davidfavor (David Favor) 11 years ago.
gcc48-cfbase-missing.log (5.2 MB) - added by davidfavor (David Favor) 11 years ago.

Change History (9)

Changed 11 years ago by davidfavor (David Favor)

Attachment: gcc48-missing-tcl.log added

comment:1 Changed 11 years ago by davidfavor (David Favor)

Refer also to ticket #37336.

comment:2 Changed 11 years ago by davidfavor (David Favor)

Building with parallel=no now to see if log file is more informative. Will update ticket after build finishes.

comment:3 Changed 11 years ago by davidfavor (David Favor)

Hum... looks like more missing header files... Detail in attached gcc48-cfbase-missing.log log file.

/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_lang_gcc48/libgcc/work/gcc-4.8.1/libsanitizer/asan/asan_malloc_mac.cc:16:35: fatal error: CoreFoundation/CFBase.h: No such file or directory

Changed 11 years ago by davidfavor (David Favor)

Attachment: gcc48-cfbase-missing.log added

comment:4 Changed 11 years ago by davidfavor (David Favor)

Hum... http://www.opensource.apple.com/source/CF/CF-550/CFBase.h is an open source copy of this file. Maybe this file can simply be deposited somewhere like lang/gcc48/files + add this as an include path to search during compilation.

comment:5 in reply to:  description Changed 11 years ago by neverpanic (Clemens Lang)

Keywords: mavericks added
Resolution: invalid
Status: newclosed

Replying to david@…:

1) After Mavericks upgrade /usr/include is gone

*) FIX: ln -sf $(xcrun --show-sdk-path)/usr/include /usr/include

/usr/include isn't gone, it's part of the command line tools. Revert the symlink and install the command line tools using xcode-select --install. This will also automatically fix MacPorts' ./configure script which will fail to find Tcl without the command line tools.

2) couldn't open "/System/Library/Frameworks/Tcl.framework/Versions/8.5/Resources/tclIndex": no such file or directory

This is a red herring. MacPorts does not need this file, yet somehow this error message shows up sometimes.

*) FIX: make Macports TCL (which is currently 8.6.1) a dependency + arrange for Macports TCL to be used instead of system TCL

That is currently not possible, because MacPorts base is not compatible with Tcl 8.6 (due to MacPorts overriding the try statement new to 8.6). Also using MacPorts Tcl to build MacPorts would create a very simple way for users to shoot themselves in the foot, which is why we're not doing that, at least not without adding additional safeguards.

It appears TCL is no longer provided as a Framework in OSX. There is no Tcl.framework directory or tclIndex file on the disk anymore.

Tcl is still available on OS X, but you have to install the Command Line Tools in order to build against it.

Installing the Command Line Tools will also fix the problem you see with the GCC build.

Last edited 11 years ago by neverpanic (Clemens Lang) (previous) (diff)

comment:6 Changed 11 years ago by davidfavor (David Favor)

Hum... Already did this once... Installing command line tools again correctly populated /usr/include this time...

I'll rebuild again + see what happens.

Thanks.

comment:7 Changed 11 years ago by davidfavor (David Favor)

Worked! Thanks!

I'll remember to reinstall command line tools if /usr/include is missing.

Note: See TracTickets for help on using tickets.