Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

macOS: ld: framework not found Firebird #51

Open
hakonhagland opened this issue Nov 1, 2021 · 0 comments
Open

macOS: ld: framework not found Firebird #51

hakonhagland opened this issue Nov 1, 2021 · 0 comments

Comments

@hakonhagland
Copy link

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.

hakonhagland pushed a commit to hakonhagland/perl-dbd-firebird that referenced this issue Nov 1, 2021
Do not link with Firebird framework if it does not exist on macOS.
This should fix issue mariuz#51.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant