Obtaining latest compiled binaries for cctools

Are the binaries from more recent versions of cctools available somewhere on the internet to download?

With the command line tools from Xcode 12, install_name_tool -id stores the current timestamp (to 1 second resolution) in the file even when I have exported ZERO_AR_DATE=1.

However, when I download cctools-973, and build my own version of install_name_tool without any modifications, then the new binary does not have this behavior. On looking at the source code all the way up to cctools-410, I notice comments (see comments for line #undef OUTPUT_OPTION in this file) hinting that this behavior was fixed at some point.

Given that install_name_tool does not have version information, it is hard to say which version of cctools is currently shipping with Xcode.

To reproduce the behavior I mentioned above that is observed with cctools from Xcode CLT, but not with the open source versions:
Code Block
$ cat > foo.c
void a() {}
$ clang -g -c foo.c -o foo.o
$ clang -dynamiclib -o foo.so foo.o
$ shasum foo.so
$ for attempt in {1..4}; do sleep 1 && install_name_tool -id "foo.so" foo.so && shasum foo.so; done

Accepted Reply

Given that install_name_tool does not have version information, it
is hard to say which version of cctools is currently shipping with
Xcode.

You can work this out the hard way:

Code Block
% strings `xcrun -f install_name_tool` | grep cctools
cctools-977.1


Having said that, it would be nice if install_name_tool had an option to print the version and I encourage you to file an enhancement request along those lines.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"
  • Thanks to your suggestion. I filed a request and the current version of Xcode now does not store the timestamp in the file.

Add a Comment

Replies

Given that install_name_tool does not have version information, it
is hard to say which version of cctools is currently shipping with
Xcode.

You can work this out the hard way:

Code Block
% strings `xcrun -f install_name_tool` | grep cctools
cctools-977.1


Having said that, it would be nice if install_name_tool had an option to print the version and I encourage you to file an enhancement request along those lines.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"
  • Thanks to your suggestion. I filed a request and the current version of Xcode now does not store the timestamp in the file.

Add a Comment

I filed a request and the current version of Xcode now does not store the timestamp in the file.

That’s great news.

Just for my own records, what was your bug number?

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

  • This is the bug in Feedback Assistant.

    Feedback ID 9086277, install_name_tool -id stores the current timestamp (to 1 second resolution) in the file

Add a Comment