The make install fails in cross-compile mode

Hi,

I cross-compile llvm/clang. The build platform is x86_64-linux-gnu. The host platform is mips-linux-gnu. Llvm and clang built successfully but "make install" shows the following error:

% make install
llvm[0]: Installing Release+Asserts /home/simon/work/install/clang/bin/llvm-tblgen
strip: Unable to recognise the format of the input file `/home/simon/work/install/clang/bin/llvm-tblgen'
/usr/bin/install: strip process terminated abnormally
make: *** [/home/simon/work/install/clang/bin/llvm-tblgen] Error 1

The problem is that "install" is run with "-s" argument to strip symbols but always uses default "strip" executable even in cross-compile mode. To fix the bug I check for the "strip" executable in the configure.ac and provide the result to the "install" command using "--strip-program" argument. The patches are attached to this email.

WBR

cross_strip.patch (1.1 KB)

cross_strip.configure.patch (5 KB)

The problem is that "install" is run with "-s" argument to strip symbols but always uses default "strip" executable even in cross-compile mode. To fix the bug I check for the "strip" executable in the configure.ac and provide the result to the "install" command using "--strip-program" argument. The patches are attached to this email.

  Nice work. Before this, I just ignore the failure and leave them unstriped.
Maybe this should go llvm-commits?

Regards,
chenwj

Thanks for the patch!

Committed here:

  M configure
  M Makefile.config.in
  M Makefile.rules
  M autoconf/configure.ac
r142997 = 117b04e97e24be3c2ed94ae0833578d9a17e6304 (refs/remotes/origin/master)

-eric

You guys are aware that this feature is specific to GNU install, right? BSD install--and incidentally, Mac OS X uses BSD install--does not have this. Congratulations: you just broke installing on Mac OS and the BSDs. I'm going to revert this change right away.

Chip

You'll notice the @apple.com in my email address right?

I actually tested this on Mac OS X. Looks like strip is only invoked for Release builds so my default build didn't catch it annoyingly enough.

-eric

Why don't you fix it for mac OS then instead of reverting the whole change?

Why don't you fix it for mac OS then instead of reverting the whole change?

No worries, it's always easiest to revert first. I've got a different change coming, but I'm going to commit it in the morning.

-eric

Understood. Thanks.

The executables are huge without the strip.

Building optimized with debug info?

-eric