Linuxbrew-core: perl: error: EXTERN.h: No such file or directory

Created on 30 Jul 2018  ·  17Comments  ·  Source: Homebrew/linuxbrew-core

Hello, when I tried to upgrade perl in CentOS 6, I met

stacksize: Perl lib version (5.28.0) doesn't match executable '/home/skpark/tmp/perl-20180730-25515-15ld1j5/perl-5.28.0/perl' version (5.26.2) at ../../lib/Config.pm line 62. 
Compilation failed in require at stacksize line 5.
BEGIN failed--compilation aborted at stacksize line 5.
make[1]: *** [lib/Storable/Limit.pm] Error 255

Thank you.
https://gist.github.com/a1d1a1ca62a853ff506340e395a4ff8a

  • [x] have a problem with brew install (or upgrade, reinstall) a single formula? If it's a general brew problem please file this issue at Linuxbrew/brew: https://github.com/Linuxbrew/brew/issues/new/choose. If it's a tap (e.g. Brewsci/homebrew-bio) problem please file this issue at the tap.
  • [x] ran brew update and can still reproduce the problem?
  • [x] ran brew doctor, fixed all issues and can still reproduce the problem?
  • [x] ran brew gist-logs <formula> (where <formula> is the name of the formula that failed) and included the output link?
  • [x] if brew gist-logs didn't work: ran brew config and brew doctor and included their output with your issue?
build failure outdated

All 17 comments

When export HOMEBREW_MAKE_JOBS=1, it has been solved. Maybe it is related to parallel compiling in CentOS 6. Whereas, there was no problem of parallel compiling in openSUSE.

I met another error message:

Expat.xs:14:20: fatal error: EXTERN.h: No such file or directory
compilation terminated.
make[1]: *** [Expat.o] Error 1

https://gist.github.com/37fa606fc3c4e56f6862f0c432fe1b8d

But, I added

87         ENV["C_INCLUDE_PATH"] = Formula["perl"].lib/"perl5/#{version}/x86_64-linux-thread-multi/CORE"

into perl.rb. The problem was solved. I will try to submit my RB.

@Gwang-Jin's fix worked to install perl, but texinfo has the exact same issue for me:

libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I. -I./lib -I./lib -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DVERSION=\"0\" -DXS_VERSION=\"1\" -I/usr/lib64/perl5/CORE -c text.c -o XSParagraph_la-text.o >/dev/null 2>&1
XSParagraph.xs:6:20: fatal error: EXTERN.h: No such file or directory

It seems to include /usr/lib64/perl5/CORE instead of the brewed perl (curiously, this _does_ contain EXTERN.h, so no idea what's happening here).

Is there a similar workaround for texinfo?

@iMichka Did this issue possibly arise while the make shim unintentionally disabled superenv?

@Gwang-Jin Can you test whether installing perl works now without your change in PR https://github.com/Linuxbrew/homebrew-core/pull/8709?

This is now fixed. You can set export HOMEBREW_DEVELOPER=1 and run brew update, and you should be good to go. export HOMEBREW_DEVELOPER=1 will update brew to the latest version.

Once we have tagged 1.7.2 the fix will be released, and I recommend removing export HOMEBREW_DEVELOPER=1 if you do not want to test the latest (and possibly broken) brew versions.

Perl now successfully installs for me, but the problem with texinfo remains:

libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I. -I./lib -I./lib -D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DVERSION=\"0\" -DXS_VERSION=\"1\" -I/usr/lib64/perl5/CORE -c XSParagraph.c  -fPIC -DPIC -o .libs/XSParagraph_la-XSParagraph.o
xspara.c:39:20: fatal error: EXTERN.h: No such file or directory

The gist is here:
https://gist.github.com/definelicht/c7c9207fdf1810b254c11381fd9244fc

Yes, I had to revert the patch for this.
A new patch will be merged soon: https://github.com/Linuxbrew/brew/pull/785

Okay we went for yet another strategy: #8842

This is merged, you can update and try again.

Thanks for the updates. Unfortunately, this does not seem to have fixed the issue for me.

I did brew reinstall perl && brew install texinfo, but got the same error:
https://gist.github.com/definelicht/4b8a2065b21f62b887958761b93d5e71

Should the reinstall be sufficient?

@definelicht Please report the output of brew --version. Try…

HOMEBREW_DEVELOPER=1 brew update && brew postinstall perl && brew install texinfo

Still no luck.

% brew --version
Homebrew 1.7.1-263-gc6c6a83

perl: https://gist.github.com/dff8d84e9fd71860310ad7ed317af3af
texinfo: https://gist.github.com/cfc8dff6f2980111366dd88340b24aba

Is there anything else I should try?

❯❯❯ brew linkage texinfo
Homebrew libraries:
  /home/sjackman/.linuxbrew/lib/libc.so.6 (glibc)
  /home/sjackman/.linuxbrew/lib/libncursesw.so.6 (ncurses)
  /home/sjackman/.linuxbrew/lib/libperl.so (perl)
Undeclared dependencies with linkage:
  perl
❯❯❯ brew linkage --reverse texinfo
/home/sjackman/.linuxbrew/lib/libc.so.6
  bin/info
  bin/install-info
  lib/texinfo/XSParagraph.so

/home/sjackman/.linuxbrew/lib/libncursesw.so.6
  bin/info

/home/sjackman/.linuxbrew/lib/libperl.so
  lib/texinfo/XSParagraph.so

Ahah. Try brew edit texinfo and add…

  depends_on "perl" unless OS.mac?

@sjackman That did it! :-)

@iMichka Should texinfo depend on perl? Is there a configure option to disable building XSParagraph.so to avoid the run-time dependency on perl?

@definelicht Glad to hear that fix got it working!

Thanks a million.

@iMichka Should texinfo depend on perl?

Looks like it needs to.

Is there a configure option to disable building XSParagraph.so

No clue, I do not know that package well enough.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

iMichka picture iMichka  ·  6Comments

vkyt picture vkyt  ·  4Comments

baranyildirim picture baranyildirim  ·  6Comments

hidvegin picture hidvegin  ·  6Comments

davideo picture davideo  ·  4Comments