Eos: OS X ld warning with weird paths

Created on 24 Aug 2018  路  4Comments  路  Source: EOSIO/eos

When building from master on OS X, there is a weird warning:

[100%] Linking CXX executable nodeos
ld: warning: text-based stub file /System/Library/Frameworks//CoreFoundation.framework/CoreFoundation.tbd and library file /System/Library/Frameworks//CoreFoundation.framework/CoreFoundation are out of sync. Falling back to library file for linking.
ld: warning: text-based stub file /System/Library/Frameworks//Security.framework/Security.tbd and library file /System/Library/Frameworks//Security.framework/Security are out of sync. Falling back to library file for linking.
ld: warning: text-based stub file /System/Library/Frameworks//CoreFoundation.framework/CoreFoundation.tbd and library file /System/Library/Frameworks//CoreFoundation.framework/CoreFoundation are out of sync. Falling back to library file for linking.
ld: warning: text-based stub file /System/Library/Frameworks//Security.framework/Security.tbd and library file /System/Library/Frameworks//Security.framework/Security are out of sync. Falling back to library file for linking.

You may see double slash in every path
/System/Library/Frameworks//...
Which is weird

Most helpful comment

This is caused by either a lack of an update in the XCode command-line tools or a bug in its installer. You may ignore it if you like. It is benign. If you prefer to eliminate it, you get to manually correct the situation with your choice of horrible hacks. Both options amount to reinstalling the XCode command-line tools.

Option 1:

sudo mv /Library/Developer/CommandLineTools /Library/Developer/CommandLineTools.old
xcode-select --install
sudo rm -rf /Library/Developer/CommandLineTools.old

Option 2:

touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress;
PROD=$(softwareupdate -l |
  grep "\*.*Command Line" |
  head -n 1 | awk -F"*" '{print $2}' |
  sed -e 's/^ *//' |
  tr -d '\n')
softwareupdate -i "$PROD" --verbose;
rm /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress;

Option 2 has the benefit of working even without a logged in UI and without any scary/slightly dangerous rm -rfs. Option 1 has the benefit of being simpler. The choice is yours.

All 4 comments

This is caused by either a lack of an update in the XCode command-line tools or a bug in its installer. You may ignore it if you like. It is benign. If you prefer to eliminate it, you get to manually correct the situation with your choice of horrible hacks. Both options amount to reinstalling the XCode command-line tools.

Option 1:

sudo mv /Library/Developer/CommandLineTools /Library/Developer/CommandLineTools.old
xcode-select --install
sudo rm -rf /Library/Developer/CommandLineTools.old

Option 2:

touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress;
PROD=$(softwareupdate -l |
  grep "\*.*Command Line" |
  head -n 1 | awk -F"*" '{print $2}' |
  sed -e 's/^ *//' |
  tr -d '\n')
softwareupdate -i "$PROD" --verbose;
rm /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress;

Option 2 has the benefit of working even without a logged in UI and without any scary/slightly dangerous rm -rfs. Option 1 has the benefit of being simpler. The choice is yours.

Download the current version of the system reinstall to solve this problem, data will not be lost. I have solved this problem.

I manually renamed both ".tbd" to ".tbd.gone" files, now it works.

Only martinrode's solution worked for me. I needed to rename more files, so I did:

cd /System/Library/Frameworks
sudo find . -name "*.tbd" -exec bash -c 'mv "$1" "$1.gone"' - '{}' \;

Was this page helpful?
0 / 5 - 0 ratings

Related issues

jiazechen picture jiazechen  路  3Comments

Npizza picture Npizza  路  3Comments

hoopslb picture hoopslb  路  3Comments

yashbhavsar007 picture yashbhavsar007  路  3Comments

congnghebitcoin picture congnghebitcoin  路  3Comments