Skip Menu |

This queue is for tickets about the ExtUtils-MakeMaker CPAN distribution.

Report information
The Basics
Id: 127028
Status: resolved
Worked: 20 hours (1200 min)
Priority: 0/
Queue: ExtUtils-MakeMaker

People
Owner: BINGOS [...] cpan.org
Requestors: cosmin [...] uhl-services.ch
Cc: ether [...] cpan.org
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: 7.36



CC: ether [...] cpan.org
Subject: Unable to build on OSX Mojave
cpanm (App::cpanminus) 1.7044 on perl 5.018002 built for darwin-thread-multi-2level Work directory is /Users/cosmicsound/.cpanm/work/1536011169.8762 You have make /usr/bin/make You have LWP 6.05 You have /usr/bin/tar: bsdtar 2.8.3 - libarchive 2.8.3 You have /usr/bin/unzip ! ! Can't write to /Library/Perl/5.18 and /usr/local/bin: Installing modules to /Users/cosmicsound/perl5 ! To turn off this warning, you have to do one of the following: ! - run me as a root or with --sudo option (to install to /Library/Perl/5.18 and /usr/local/bin) ! - Configure local::lib in your existing shell to set PERL_MM_OPT etc. ! - Install local::lib by running the following commands ! ! cpanm --local-lib=~/perl5 local::lib && eval $(perl -I ~/perl5/lib/perl5/ -Mlocal::lib) ! Searching Mac::SystemDirectory () on cpanmetadb ... --> Working on Mac::SystemDirectory Fetching http://www.cpan.org/authors/id/E/ET/ETHER/Mac-SystemDirectory-0.10.tar.gz -> OK Unpacking Mac-SystemDirectory-0.10.tar.gz Entering Mac-SystemDirectory-0.10 Checking configure dependencies from META.json Checking if you have ExtUtils::MakeMaker 6.58 ... Yes (6.66) Configuring Mac-SystemDirectory-0.10 Running Makefile.PL HASCOMPILERwgth/TESTJu6G.c:2:10: fatal error: 'EXTERN.h' file not found #include "EXTERN.h" ^~~~~~~~~~ 1 error generated. Couldn't execute cc -g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -fstack-protector -Os "-I/System/Library/Perl/5.18/darwin-thread-multi-2level/CORE" -c HASCOMPILERwgth/TESTJu6G.c -o HASCOMPILERwgth/TESTJu6G.o: Inappropriate ioctl for device at Makefile.PL line 14. Requires a compiler -> N/A
On 2018-09-03 14:50:58, cosmin@uhl-services.ch wrote: Show quoted text
> Running Makefile.PL > HASCOMPILERwgth/TESTJu6G.c:2:10: fatal error: 'EXTERN.h' file not > found > #include "EXTERN.h" > ^~~~~~~~~~ > 1 error generated. > Couldn't execute cc -g -pipe -fno-common -DPERL_DARWIN -fno-strict- > aliasing -fstack-protector -Os "-I/System/Library/Perl/5.18/darwin- > thread-multi-2level/CORE" -c HASCOMPILERwgth/TESTJu6G.c -o > HASCOMPILERwgth/TESTJu6G.o: Inappropriate ioctl for device at > Makefile.PL line 14. > Requires a compiler > -> N/A
You need to install Xcode, which provides a working compiler. EXTERN.h should be available in the $(PERL_INCDEP) directory, whose value can be found in 'Makefile'. I'm inclined to reject this ticket as it doesn't appear that you have all the necessary tools installed on your system, but I'll leave it open for now in case there is something strange going on. Please also include the output of 'perl -V'.
Subject: Re: [rt.cpan.org #127028] Unable to build on OSX Mojave
Date: Mon, 3 Sep 2018 23:07:39 +0000
To: "bug-Mac-SystemDirectory [...] rt.cpan.org" <bug-Mac-SystemDirectory [...] rt.cpan.org>
From: Viorel Cosmin Miron <cosmin [...] uhl-services.ch>
Revenger:~ cosmicsound$ perl -V Summary of my perl5 (revision 5 version 18 subversion 2) configuration: Platform: osname=darwin, osvers=18.0, archname=darwin-thread-multi-2level uname='darwin osx372.sd.apple.com<http://osx372.sd.apple.com> 18.0 darwin kernel version 17.0.0: fri may 4 10:33:38 pdt 2018; root:xnu-4570.1.46.100.2~1development_x86_64 x86_64 ' config_args='-ds -e -Dprefix=/usr -Dccflags=-g -pipe -Dldflags= -Dman3ext=3pm -Duseithreads -Duseshrplib -Dinc_version_list=none -Dcc=cc' hint=recommended, useposix=true, d_sigaction=define useithreads=define, usemultiplicity=define useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef use64bitint=define, use64bitall=define, uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags =' -g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -fstack-protector', optimize='-Os', cppflags='-g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -fstack-protector' ccversion='', gccversion='4.2.1 Compatible Apple LLVM 10.0.0 (clang-1000.0.42)', gccosandvers='' intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='cc', ldflags =' -fstack-protector' libpth=/usr/lib /usr/local/lib libs= perllibs= libc=, so=dylib, useshrplib=true, libperl=libperl.dylib gnulibc_version='' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' ' cccdlflags=' ', lddlflags=' -bundle -undefined dynamic_lookup -fstack-protector' Characteristics of this binary (from libperl): Compile-time options: HAS_TIMES MULTIPLICITY PERLIO_LAYERS PERL_DONT_CREATE_GVSV PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP PERL_PRESERVE_IVUV PERL_SAWAMPERSAND USE_64_BIT_ALL USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_PERLIO USE_PERL_ATOF USE_REENTRANT_API Locally applied patches: /Library/Perl/Updates/<version> comes before system perl directories installprivlib and installarchlib points to the Updates directory Built under darwin Compiled at Aug 17 2018 16:13:13 @INC: /Library/Perl/5.18/darwin-thread-multi-2level /Library/Perl/5.18 /Network/Library/Perl/5.18/darwin-thread-multi-2level /Network/Library/Perl/5.18 /Library/Perl/Updates/5.18.2/darwin-thread-multi-2level /Library/Perl/Updates/5.18.2 /System/Library/Perl/5.18/darwin-thread-multi-2level /System/Library/Perl/5.18 /System/Library/Perl/Extras/5.18/darwin-thread-multi-2level /System/Library/Perl/Extras/5.18 . Revenger:~ cosmicsound$ On Sep 4, 2018, at 01:00, Karen Etheridge via RT <bug-Mac-SystemDirectory@rt.cpan.org<mailto:bug-Mac-SystemDirectory@rt.cpan.org>> wrote: <URL: https://rt.cpan.org/Ticket/Display.html?id=127028 > On 2018-09-03 14:50:58, cosmin@uhl-services.ch<mailto:cosmin@uhl-services.ch> wrote: Running Makefile.PL HASCOMPILERwgth/TESTJu6G.c:2:10: fatal error: 'EXTERN.h' file not found #include "EXTERN.h" ^~~~~~~~~~ 1 error generated. Couldn't execute cc -g -pipe -fno-common -DPERL_DARWIN -fno-strict- aliasing -fstack-protector -Os "-I/System/Library/Perl/5.18/darwin- thread-multi-2level/CORE" -c HASCOMPILERwgth/TESTJu6G.c -o HASCOMPILERwgth/TESTJu6G.o: Inappropriate ioctl for device at Makefile.PL line 14. Requires a compiler -> N/A You need to install Xcode, which provides a working compiler. EXTERN.h should be available in the $(PERL_INCDEP) directory, whose value can be found in 'Makefile'. I'm inclined to reject this ticket as it doesn't appear that you have all the necessary tools installed on your system, but I'll leave it open for now in case there is something strange going on. Please also include the output of 'perl -V'.

Message body is not shown because it is too large.

Subject: [rt.cpan.org #127028]
Date: Sun, 30 Sep 2018 18:48:28 +0200
To: bug-Mac-SystemDirectory [...] rt.cpan.org
From: Christian Hovestadt <accounts [...] hovestadt.me>
I have the same problem on macOS Mojave (10.14, release version). I have Xcode installed. Thanks for looking into it! cpanm build.log: cpanm (App::cpanminus) 1.7044 on perl 5.018002 built for darwin-thread-multi-2level Work directory is /Users/christian/.cpanm/work/1538325840.34512 You have make /usr/bin/make You have LWP 6.05 You have /usr/bin/tar: bsdtar 2.8.3 - libarchive 2.8.3 You have /usr/bin/unzip Searching Mac::SystemDirectory () on cpanmetadb ... --> Working on Mac::SystemDirectory Fetching http://www.cpan.org/authors/id/E/ET/ETHER/Mac-SystemDirectory-0.10.tar.gz -> OK Unpacking Mac-SystemDirectory-0.10.tar.gz Entering Mac-SystemDirectory-0.10 Checking configure dependencies from META.json Checking if you have ExtUtils::MakeMaker 6.58 ... Yes (6.66) Configuring Mac-SystemDirectory-0.10 Running Makefile.PL HASCOMPILERZXaV/TESTqQfr.c:2:10: fatal error: 'EXTERN.h' file not found #include "EXTERN.h" ^~~~~~~~~~ 1 error generated. Couldn't execute cc -g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -fstack-protector -Os "-I/System/Library/Perl/5.18/darwin-thread-multi-2level/CORE" -c HASCOMPILERZXaV/TESTqQfr.c -o HASCOMPILERZXaV/TESTqQfr.o: Inappropriate ioctl for device at Makefile.PL line 14. Requires a compiler -> N/A -> FAIL Configure failed for Mac-SystemDirectory-0.10. See /Users/christian/.cpanm/work/1538325840.34512/build.log for details. Output of perl -V: Summary of my perl5 (revision 5 version 18 subversion 2) configuration: Platform: osname=darwin, osvers=18.0, archname=darwin-thread-multi-2level uname='darwin osx327.sd.apple.com 18.0 darwin kernel version 17.0.0: fri may 4 10:33:38 pdt 2018; root:xnu-4570.1.46.100.2~1development_x86_64 x86_64 ' config_args='-ds -e -Dprefix=/usr -Dccflags=-g -pipe -Dldflags= -Dman3ext=3pm -Duseithreads -Duseshrplib -Dinc_version_list=none -Dcc=cc' hint=recommended, useposix=true, d_sigaction=define useithreads=define, usemultiplicity=define useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef use64bitint=define, use64bitall=define, uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags =' -g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -fstack-protector', optimize='-Os', cppflags='-g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -fstack-protector' ccversion='', gccversion='4.2.1 Compatible Apple LLVM 10.0.0 (clang-1000.0.42)', gccosandvers='' intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='cc', ldflags =' -fstack-protector' libpth=/usr/lib /usr/local/lib libs= perllibs= libc=, so=dylib, useshrplib=true, libperl=libperl.dylib gnulibc_version='' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' ' cccdlflags=' ', lddlflags=' -bundle -undefined dynamic_lookup -fstack-protector' Characteristics of this binary (from libperl): Compile-time options: HAS_TIMES MULTIPLICITY PERLIO_LAYERS PERL_DONT_CREATE_GVSV PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP PERL_PRESERVE_IVUV PERL_SAWAMPERSAND USE_64_BIT_ALL USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_PERLIO USE_PERL_ATOF USE_REENTRANT_API Locally applied patches: /Library/Perl/Updates/<version> comes before system perl directories installprivlib and installarchlib points to the Updates directory Built under darwin Compiled at Aug 17 2018 15:30:11 @INC: /Library/Perl/5.18/darwin-thread-multi-2level /Library/Perl/5.18 /Network/Library/Perl/5.18/darwin-thread-multi-2level /Network/Library/Perl/5.18 /Library/Perl/Updates/5.18.2/darwin-thread-multi-2level /Library/Perl/Updates/5.18.2 /System/Library/Perl/5.18/darwin-thread-multi-2level /System/Library/Perl/5.18 /System/Library/Perl/Extras/5.18/darwin-thread-multi-2level /System/Library/Perl/Extras/5.18 .
I would recommend rejecting this. It appears to be related to mojave breaking xcode. I found this link helpful. https://apple.stackexchange.com/questions/254380/macos-mojave-invalid-active-developer-path I had to download and install command line tools from https://developer.apple.com/download/more/ then run these commands. xcode-select --switch /Applications/Xcode.app xcode-select --switch /Library/Developer/CommandLineTools
Subject: Re: [rt.cpan.org #127028] Unable to build on OSX Mojave
Date: Thu, 08 Nov 2018 19:16:05 -0500
To: bug-Mac-SystemDirectory [...] rt.cpan.org
From: Dabrien 'Dabe' Murphy <dabe [...] dabe.com>
On Wed Oct 24, 2018 at 01:10:43 2018 TODDR[...]cpan.org wrote: Show quoted text
> I would recommend rejecting this. It appears to be related to mojave > breaking xcode. I found this link helpful. > > https://apple.stackexchange.com/questions/254380/macos-mojave-invalid-active-developer-path > > I had to download and install command line tools from > https://developer.apple.com/download/more/ > > then run these commands. > > xcode-select --switch /Applications/Xcode.app > xcode-select --switch /Library/Developer/CommandLineTools
So I had done all that already, but the problem (or maybe just the symptom?) seems to be that /System/Library/Perl/5.18/darwin-thread-multi-2level/Config.pm still doesn't end up knowing about the "/Library/Developer/CommandLineTools" path: bash-3.2# xcode-select -p /Library/Developer/CommandLineTools bash-3.2# grep '/Library/' /System/Library/Perl/5.18/darwin-thread-multi-2level/Config.pm archlibexp => '/System/Library/Perl/5.18/darwin-thread-multi-2level', privlibexp => '/System/Library/Perl/5.18', sitearchexp => '/Library/Perl/5.18/darwin-thread-multi-2level', sitelibexp => '/Library/Perl/5.18', PS: Just 'cuz Apple broke--- er, I mean "changed" something doesn't mean *WE* can't fix it... -- :- Dabe
RT-Send-CC: accounts [...] hovestadt.me, ether [...] cpan.org, dabe [...] dabe.com
Please don't reject this bug. I have tried all of the following: 1. xcode-select --install 2. xcode-select --switch "directories listed above" 2. Completely deleting Xcode and uninstalling everything and re-installing everything from scratch. 4. I also found from another website that the problem seems to be that Xcode in Mojave removed libgcc, and so I tried installing that. 5. Installed patchperl from perlbrew 6. Installed a new version of perl from perlbrew No matter what I do, XS modules simply fail to compile. This is a real bug. This cannot be brushed aside as someone else's problem. It is actually preventing people from doing real work. Thanks, Balaji
Rejecting this bug would imply that somehow magically all Perl users should know how to configure Perl build systems on their Operating Systems, and know all the ins-and-outs of what changed in their Operating System when they upgrade to a new version. Most of us don't. Rejecting this bug also means an insult and is too harsh on new programmers. This is precisely the sort of tendency that would prevent interested developers from working on this. Configuring the CPAN module installation for XS modules to work out of the box shouldn't be so hard that people have to spend more than 72 hours on a problem like this and still have ZERO results. I'm sorry, but this thread needs more attention than it is getting. -Balaji
I'm moving this ticket to ExtUtils-MakeMaker as if there's anything we can do, it's in that code.
After a lot of debug, I found a website, where one of the participants found out that actually, Mojave's system perl 5.18.1 is not a good version to be used. So instead he installed perl 5.28.1 from Homebrew. This is exactly what I also did and this solution actually worked. I am now in the process of uninstalling all the components of 5.18.1 and installing 5.28.1 instead. This was required because Mojave has actually restructured where they would place perl XS libraries and where they would place EXTERN.h. It seems like they have organized it better now. This would not have been a problem if you got a brand new system with Mojave installed on it, because then they would structure the directory structure for Perl 5.18.1 itself. But if you upgrade from Mac OSX 10.13 then your old directory structure is retained and you must install a totally new version of Perl. I now wonder why this could not have been solved by re-installing older 5.18.1 after removing it. But that actually did not work for me - I don't know why. But anyway, I have fixed this after dedicating almost 80 hours to it. Thanks for not being of much help and for instead threatening to reject this bug report, leaving the rest of us in the lurch here! This is all I had to do: Show quoted text
> brew install perl
This installs Perl 5.28.1 After this, when I did: Show quoted text
> sudo cpanm -i Template Devel::Cover
Now things work like a charm. -Balaji
It seems that the system perl of macOS Mojave comes with locally patches, which append "-iwithsysroot" to ExtUtils-MakeMaker, ExtUtils-CBuilder and ExtUtils-Depends so that c compilers can find perl headers in /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Perl/5.18/darwin-thread-multi-2level/CORE. See https://gist.github.com/skaji/a322f420b1ad92fec70d88144885fa49
RT-Send-CC: accounts [...] hovestadt.me, ether [...] cpan.org, dabe [...] dabe.com
On Tue Jan 01 01:31:54 2019, SKAJI wrote: Show quoted text
> It seems that the system perl of macOS Mojave comes with locally > patches, > which append "-iwithsysroot" to ExtUtils-MakeMaker, ExtUtils-CBuilder > and ExtUtils-Depends so that c compilers can find perl headers in > /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Perl/5.18/darwin- > thread-multi-2level/CORE. > > See https://gist.github.com/skaji/a322f420b1ad92fec70d88144885fa49
It is not a problem only for perl ? https://stackoverflow.com/questions/50780183/cannot-install-brew-on-mojave-with-xcode-10/51202481#51202481 https://github.com/pyenv/pyenv/wiki/Common-build-problems says "When running Mojave or higher (10.14+) you will also need to install the additional SDK headers( https://developer.apple.com/documentation/xcode_release_notes/xcode_10_release_notes#3035624 ) by downloading them from Apple Developers( https://developer.apple.com/download/more/?q=Command%20Line%20Tools ). You can also check under /Library/Developer/CommandLineTools/Packages/ as some versions of Mac OS will have the pkg locally. $ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target / "
This was resolved with the v7.36 release of ExtUtils::MakeMaker