mariuz / perl-dbd-firebird

Perl DBI driver for Firebird
15 stars 9 forks source link

macOS: ld: framework not found Firebird #51

Open hakonhagland opened 3 years ago

hakonhagland commented 3 years ago

I am trying to build on macOS 12.0.1 (Monterey) with Apple M1 chip, Firebird DB version 3.0.7:

$ perl Makefile.PL
Configuring DBD::Firebird (on darwin)
Detected Firebird API version 30

FIREBIRD_HOME   : /Library/Frameworks/Firebird.framework/Resources
FIREBIRD_INCLUDE: /Library/Frameworks/Firebird.framework/Headers
FIREBIRD_LIB    : /Library/Frameworks/Firebird.framework/Libraries
Client library  : fbclient

Using DBI 1.643 (for perl 5.034000 on darwin-2level) installed in /Users/hakonhaegland/perl5/perlbrew/perls/perl-5.34.0/lib/site_perl/5.34.0/darwin-2level/auto/DBI/
Found libfbembed, will build DBD::FirebirdEmbed too.
Configuring DBD::FirebirdEmbedded (on darwin)

FIREBIRD_HOME   : /Library/Frameworks/Firebird.framework/Resources
FIREBIRD_INCLUDE: /Library/Frameworks/Firebird.framework/Headers
FIREBIRD_LIB    : /Library/Frameworks/Firebird.framework/Libraries
Client library  : fbclient

Writing MYMETA.yml and MYMETA.json
Generating a Unix-style Makefile
Writing Makefile for DBD::Firebird
Writing MYMETA.yml and MYMETA.json

$ make
Skip blib/lib/DBD/Firebird/TableInfo.pm (unchanged)
Skip blib/lib/DBD/Firebird/TableInfo/Firebird21.pm (unchanged)
Skip blib/lib/DBD/Firebird.pm (unchanged)
Skip blib/lib/DBD/Firebird/TableInfo/Basic.pm (unchanged)
Skip blib/lib/DBD/Firebird/GetInfo.pm (unchanged)
Skip blib/lib/DBD/Firebird/TypeInfo.pm (unchanged)
Skip ../blib/lib/DBD/FirebirdEmbedded.pm (unchanged)
Running Mkbootstrap for FirebirdEmbedded ()
chmod 644 "FirebirdEmbedded.bs"
"/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.34.0/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- FirebirdEmbedded.bs ../blib/arch/auto/DBD/FirebirdEmbedded/FirebirdEmbedded.bs 644
"/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.34.0/bin/perl" "/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.34.0/lib/5.34.0/ExtUtils/xsubpp" -noprototypes -typemap '/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.34.0/lib/5.34.0/ExtUtils/typemap'  FirebirdEmbedded.xs > FirebirdEmbedded.xsc
mv FirebirdEmbedded.xsc FirebirdEmbedded.c
cc -c -I"/Library/Frameworks/Firebird.framework/Headers" -I"/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.34.0/lib/site_perl/5.34.0/darwin-2level/auto/DBI"  -I"/Library/Frameworks/Firebird.framework/Headers" -I"/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.34.0/lib/site_perl/5.34.0/darwin-2level/auto/DBI" -fno-common -DPERL_DARWIN -mmacosx-version-min=11.4 -fno-strict-aliasing -pipe -fstack-protector-strong -DPERL_USE_SAFE_PUTENV -Wno-error=implicit-function-declaration -O3   -DVERSION=\"1.32\" -DXS_VERSION=\"1.32\"  "-I/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.34.0/lib/5.34.0/darwin-2level/CORE"  -DEMBEDDED FirebirdEmbedded.c
In file included from FirebirdEmbedded.xs:20:
In file included from ./FirebirdEmbedded.h:18:
In file included from ./dbdimp.h:19:
In file included from /Users/hakonhaegland/perl5/perlbrew/perls/perl-5.34.0/lib/site_perl/5.34.0/darwin-2level/auto/DBI/DBIXS.h:23:
In file included from /Users/hakonhaegland/perl5/perlbrew/perls/perl-5.34.0/lib/5.34.0/darwin-2level/CORE/perl.h:4085:
In file included from /Users/hakonhaegland/perl5/perlbrew/perls/perl-5.34.0/lib/5.34.0/darwin-2level/CORE/hv.h:659:
In file included from /Users/hakonhaegland/perl5/perlbrew/perls/perl-5.34.0/lib/5.34.0/darwin-2level/CORE/hv_func.h:34:
In file included from /Users/hakonhaegland/perl5/perlbrew/perls/perl-5.34.0/lib/5.34.0/darwin-2level/CORE/sbox32_hash.h:4:
/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.34.0/lib/5.34.0/darwin-2level/CORE/zaphod32_hash.h:150:5: warning: '(' and '{' tokens introducing statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    ZAPHOD32_SCRAMBLE32(state[0],0x9fade23b);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.34.0/lib/5.34.0/darwin-2level/CORE/zaphod32_hash.h:80:38: note: expanded from macro 'ZAPHOD32_SCRAMBLE32'
#define ZAPHOD32_SCRAMBLE32(v,prime) STMT_START {  \
                                     ^~~~~~~~~~
/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.34.0/lib/5.34.0/darwin-2level/CORE/perl.h:737:29: note: expanded from macro 'STMT_START'
#   define STMT_START   (void)( /* gcc supports "({ STATEMENTS; })" */
                              ^
/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.34.0/lib/5.34.0/darwin-2level/CORE/zaphod32_hash.h:150:5: note: '{' token is here
    ZAPHOD32_SCRAMBLE32(state[0],0x9fade23b);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.34.0/lib/5.34.0/darwin-2level/CORE/zaphod32_hash.h:80:49: note: expanded from macro 'ZAPHOD32_SCRAMBLE32'
#define ZAPHOD32_SCRAMBLE32(v,prime) STMT_START {  \
                                                ^
/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.34.0/lib/5.34.0/darwin-2level/CORE/zaphod32_hash.h:150:5: warning: '}' and ')' tokens terminating statement expression appear in different macro expansion contexts [-Wcompound-token-split-by-macro]
    ZAPHOD32_SCRAMBLE32(state[0],0x9fade23b);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.34.0/lib/5.34.0/darwin-2level/CORE/zaphod32_hash.h:87:41: note: expanded from macro 'ZAPHOD32_SCRAMBLE32'
    v ^= (v>>23);                       \
                                        ^
/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.34.0/lib/5.34.0/darwin-2level/CORE/zaphod32_hash.h:150:5: note: ')' token is here
    ZAPHOD32_SCRAMBLE32(state[0],0x9fade23b);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.34.0/lib/5.34.0/darwin-2level/CORE/zaphod32_hash.h:88:3: note: expanded from macro 'ZAPHOD32_SCRAMBLE32'
} STMT_END
  ^~~~~~~~

[...]

dbdimp.c:1530:25: note: ')' token is here
                        SvCUR_set(sv, len/bpc);
                        ^~~~~~~~~~~~~~~~~~~~~~
/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.34.0/lib/5.34.0/darwin-2level/CORE/sv.h:1376:45: note: expanded from macro 'SvCUR_set'
                (((XPV*)  SvANY(sv))->xpv_cur = (val)); } STMT_END
                                                          ^~~~~~~~
/Users/hakonhaegland/perl5/perlbrew/perls/perl-5.34.0/lib/site_perl/5.34.0/darwin-2level/auto/DBI/dbipport.h:4186:25: note: expanded from macro 'STMT_END'
#  define STMT_END      )
                        ^
84 warnings generated.
rm -f ../blib/arch/auto/DBD/FirebirdEmbedded/FirebirdEmbedded.bundle
cc  -mmacosx-version-min=11.4 -bundle -undefined dynamic_lookup -fstack-protector-strong -framework Firebird   FirebirdEmbedded.o dbdimp.o  -o ../blib/arch/auto/DBD/FirebirdEmbedded/FirebirdEmbedded.bundle  \
          \

ld: framework not found Firebird
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [../blib/arch/auto/DBD/FirebirdEmbedded/FirebirdEmbedded.bundle] Error 1
make: *** [subdirs] Error 2

This seems to be a problem on macOS 10.15 also, see this comment.