ematiu has asked for the wisdom of the Perl Monks concerning the following question:

Hello Monks!

I am trying to install Data::Alias in Mountain Lion: (Data-Alias-1.16, fetched with cpanm)

$ perl Makefile.PL Writing Makefile for Data::Alias Writing MYMETA.yml and MYMETA.json $make clang -c -arch x86_64 -g -pipe -fno-common -DPERL_DARWIN -fno-strict +-aliasing -fstack-protector -I/usr/local/include -Os -DVERSION=\"1. +16\" -DXS_VERSION=\"1.16\" "-I/System/Library/Perl/5.12/darwin-threa +d-multi-2level/CORE" Alias.c Alias.xs:1336:3: error: too few arguments provided to function-like ma +cro invocation POPSUB(cx, sv); ^ /System/Library/Perl/5.12/darwin-thread-multi-2level/CORE/cop.h:356:52 +: note: expanded from macro 'POPSUB' CopLINE((COP*)CvSTART((const CV*)cx->blk_sub.cv))); + \ ^ Alias.xs:1336:3: error: use of undeclared identifier 'RETURN_PROBE' POPSUB(cx, sv); ^ /System/Library/Perl/5.12/darwin-thread-multi-2level/CORE/cop.h:354:2: + note: expanded from macro 'POPSUB' RETURN_PROBE(GvENAME(CvGV((const CV*)cx->blk_sub.cv)), + \ ^ 2 errors generated. make: *** [Alias.o] Error 1

Could this error be a problem with clang and the Data::Alias code? I tried:  gcc -c   -arch x86_64 -g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -fstack-protector -I/usr/local/include -Os   -DVERSION=\"1.16\" -DXS_VERSION=\"1.16\"  "-I/System/Library/Perl/5.12/darwin-thread-multi-2level/CORE"   Alias.c

But still getting an error:

Alias.xs:1336:16: error: macro "RETURN_PROBE" requires 4 arguments, bu +t only 3 given Alias.xs: In function ‘DataAlias_pp_return’: Alias.xs:1336: error: ‘RETURN_PROBE’ undeclared (first use in this fun +ction) Alias.xs:1336: error: (Each undeclared identifier is reported only onc +e Alias.xs:1336: error: for each function it appears in.)

Can someone point me a workaround for this? I need Data::Alias for Method::Signatures. Thanks a lot, and greetings from Argentina.

Some extra info:

$ perl -V Summary of my perl5 (revision 5 version 12 subversion 4) configuration +: Platform: osname=darwin, osvers=12.0, archname=darwin-thread-multi-2level uname='darwin b1026.apple.com 12.0 darwin kernel version 12.0.0: t +ue may 15 23:31:29 pdt 2012; root:xnu-2050.6.70~1release_x86_64 x86_6 +4 ' config_args='-ds -e -Dprefix=/usr -Dccflags=-g -pipe -Dldflags= +-Dman3ext=3pm -Duseithreads -Duseshrplib -Dinc_version_list=none -Dcc +=clang' hint=recommended, useposix=true, d_sigaction=define useithreads=define, usemultiplicity=define useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=und +ef use64bitint=define, use64bitall=define, uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='clang', ccflags =' -arch x86_64 -g -pipe -fno-common -DPERL_DA +RWIN -fno-strict-aliasing -fstack-protector -I/usr/local/include', optimize='-Os', cppflags='-g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing +-fstack-protector -I/usr/local/include' ccversion='', gccversion='4.2.1 Compatible Apple Clang 4.0 (tags/A +pple/clang-418.0.60)', gccosandvers='' intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=1 +6 ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', + lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='clang -mmacosx-version-min=10.8', ldflags =' -arch x86_64 -fst +ack-protector -L/usr/local/lib' libpth=/usr/local/lib /usr/lib libs=-ldbm -ldl -lm -lutil -lc perllibs=-ldl -lm -lutil -lc libc=, so=dylib, useshrplib=true, libperl=libperl.dylib gnulibc_version='' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' ' cccdlflags=' ', lddlflags=' -arch x86_64 -bundle -undefined dynami +c_lookup -L/usr/local/lib -fstack-protector' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP USE_64_ +BIT_ALL USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_PERL_ATOF USE_REENTRANT_API Locally applied patches: /Library/Perl/Updates/<version> comes before system perl directori +es installprivlib and installarchlib points to the Updates directory Built under darwin Compiled at Jun 20 2012 13:55:28 @INC: /Library/Perl/5.12/darwin-thread-multi-2level /Library/Perl/5.12 /Network/Library/Perl/5.12/darwin-thread-multi-2level /Network/Library/Perl/5.12 /Library/Perl/Updates/5.12.4/darwin-thread-multi-2level /Library/Perl/Updates/5.12.4 /System/Library/Perl/5.12/darwin-thread-multi-2level /System/Library/Perl/5.12 /System/Library/Perl/Extras/5.12/darwin-thread-multi-2level /System/Library/Perl/Extras/5.12 . $ cpanm --version cpanm (App::cpanminus) version 1.6915 (/usr/local/bin/cpanm) perl version 5.012004 (/usr/bin/perl) %Config: archname=darwin-thread-multi-2level installsitelib=/Library/Perl/5.12 installsitebin=/usr/local/bin installman1dir=/usr/share/man/man1 installman3dir=/usr/share/man/man3 sitelibexp=/Library/Perl/5.12 archlibexp=/System/Library/Perl/5.12/darwin-thread-multi-2level privlibexp=/System/Library/Perl/5.12 %ENV: @INC: /Library/Perl/5.12/darwin-thread-multi-2level /Library/Perl/5.12 /Network/Library/Perl/5.12/darwin-thread-multi-2level /Network/Library/Perl/5.12 /Library/Perl/Updates/5.12.4/darwin-thread-multi-2level /Library/Perl/Updates/5.12.4 /System/Library/Perl/5.12/darwin-thread-multi-2level /System/Library/Perl/5.12 /System/Library/Perl/Extras/5.12/darwin-thread-multi-2level /System/Library/Perl/Extras/5.12 $ clang -v Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn) Target: x86_64-apple-darwin12.3.0 Thread model: posix $ gcc -v Using built-in specs. Target: i686-apple-darwin11 Configured with: /private/var/tmp/llvmgcc42/llvmgcc42-2336.11~182/src/ +configure --disable-checking --enable-werror --prefix=/Applications/X +code.app/Contents/Developer/usr/llvm-gcc-4.2 --mandir=/share/man --en +able-languages=c,objc,c++,obj-c++ --program-prefix=llvm- --program-tr +ansform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build= +i686-apple-darwin11 --enable-llvm=/private/var/tmp/llvmgcc42/llvmgcc4 +2-2336.11~182/dst-llvmCore/Developer/usr/local --program-prefix=i686- +apple-darwin11- --host=x86_64-apple-darwin11 --target=i686-apple-darw +in11 --with-gxx-include-dir=/usr/include/c++/4.2.1 Thread model: posix gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11 +.00)

Replies are listed 'Best First'.
Re: Data::Alias fails in OSX Mountain Lion. Please help
by davido (Cardinal) on May 24, 2013 at 15:00 UTC

    Possibly related to RT#78928: Cannot install this module on MacOS 10.7. The module also is known to be incompatible with Perl 5.18, probably due to some assumptions it makes about how pad elements are arranged internally, which is undefined behavior where the implementation changed a little in 5.18. The Perl 5.18 incompatibility isn't a direct problem for your situation, but just another indicator that some maintenance is needed.

    I'd say there's work to be done before it's stable enough for general consumption again.


    Dave

      Thanks a lot for the lead. Ill try to follow the comments posted there. But I need Data::Alias for Method::Signatures, so I need to solve this. thanks!
        OK, just for anyone else reading this:
        --- Alias.xs +++ Alias.xs @@ -25,13 +25,6 @@ PERL_SUBVERSION) #endif -#if defined(USE_DTRACE) && defined(PERL_CORE) -#undef ENTRY_PROBE -#undef RETURN_PROBE -#define ENTRY_PROBE(func, file, line, stash) -#define RETURN_PROBE(func, file, line, stash) -#endif - #if defined(PERL_CORE) && defined(MULTIPLICITY) && \ (PERL_COMBI_VERSION < 5013006) #undef PL_sv_placeholder
        did the trick!! thanks a lot davido.

        I think if you follow the discussions in the various RT entries for the module you'll find some patches to apply. After applying all that seem relevant, you might just get there. Good luck. :)


        Dave