You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I can successfully build a project when there's no gems with native extensions, however when using native extensions running the output file crashes. I have two gems with native extensions ruby-serial and fxruby and the issues occurs if just one or both gems are present in the Gemfile.
With a native gem present I get an output file but this is also present at the end of the build output:
*** Following extensions are not compiled:
gdbm:
Could not be configured. It will not be installed.
Check ext/gdbm/mkmf.log for more details.
Looking at the gdbm error file (pass 1) the log has the following:
<sinpped>
"clang -o conftest -I../../.ext/include/x86_64-darwin20 -I/var/folders/nv/xhhpglzx6m97w2dv050zxtsh0000gn/T/rubyc/ruby-2.7.1.dev/include -I/var/folders/nv/xhhpglzx6m97w2dv050zxtsh0000gn/T/rubyc/ruby-2.7.1.dev/ext/gdbm -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -DRUBY_DEBUG -fPIC -O3 -fno-fast-math -ggdb3 -Os -fdata-sections -ffunction-sections -pipe -I/var/folders/nv/xhhpglzx6m97w2dv050zxtsh0000gn/T/rubyc/ruby-2.7.1.dev -I/var/folders/nv/xhhpglzx6m97w2dv050zxtsh0000gn/T/rubyc/local/include -I/var/folders/nv/xhhpglzx6m97w2dv050zxtsh0000gn/T/rubyc/local/lib/libffi-3.2.1/include conftest.c -L. -L../.. -L. -L/var/folders/nv/xhhpglzx6m97w2dv050zxtsh0000gn/T/rubyc/local/lib /var/folders/nv/xhhpglzx6m97w2dv050zxtsh0000gn/T/rubyc/local/lib/libz.a -fstack-protector-strong -L/usr/local/lib -lruby.2.7-static -framework Security -framework Foundation -lpthread -ldl -lobjc -lgdbm -L. -L/var/folders/nv/xhhpglzx6m97w2dv050zxtsh0000gn/T/rubyc/local/lib /var/folders/nv/xhhpglzx6m97w2dv050zxtsh0000gn/T/rubyc/local/lib/libz.a -fstack-protector-strong -L/usr/local/lib "
conftest.c:14:57: error: use of undeclared identifier 'gdbm_open'
int t(void) { void ((*volatile p)()); p = (void ((*)()))gdbm_open; return !p; }
^
1 error generated.
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: /*top*/
4: extern int t(void);
5: int main(int argc, char **argv)
6: {
7: if (argc > 1000000) {
8: int (* volatile tp)(void)=(int (*)(void))&t;
9: printf("%d", (*tp)());
10: }
11:
12: return !!argv[argc];
13: }
14: int t(void) { void ((*volatile p)()); p = (void ((*)()))gdbm_open; return !p; }
/* end */
It seems there's some problem finding gdbm_open Looking at the pass2 error file it seems a similar story:
have_library: checking for gdbm_open() in -lgdbm... -------------------- no
"clang -o conftest -I../../.ext/include/x86_64-darwin20 -I/var/folders/nv/xhhpglzx6m97w2dv050zxtsh0000gn/T/rubyc/ruby-2.7.1.dev/include -I/var/folders/nv/xhhpglzx6m97w2dv050zxtsh0000gn/T/rubyc/ruby-2.7.1.dev/ext/gdbm -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -DRUBY_DEBUG -fPIC -O3 -fno-fast-math -ggdb3 -Os -fdata-sections -ffunction-sections -pipe -I/var/folders/nv/xhhpglzx6m97w2dv050zxtsh0000gn/T/rubyc/ruby-2.7.1.dev -I/var/folders/nv/xhhpglzx6m97w2dv050zxtsh0000gn/T/rubyc/local/include -I/var/folders/nv/xhhpglzx6m97w2dv050zxtsh0000gn/T/rubyc/local/lib/libffi-3.2.1/include conftest.c -L. -L../.. -L. -L/var/folders/nv/xhhpglzx6m97w2dv050zxtsh0000gn/T/rubyc/local/lib /var/folders/nv/xhhpglzx6m97w2dv050zxtsh0000gn/T/rubyc/local/lib/libz.a -fstack-protector-strong -L/usr/local/lib -lruby.2.7-static -framework Security -framework Foundation -lpthread -ldl -lobjc -L. -L/var/folders/nv/xhhpglzx6m97w2dv050zxtsh0000gn/T/rubyc/local/lib /var/folders/nv/xhhpglzx6m97w2dv050zxtsh0000gn/T/rubyc/local/lib/libz.a -fstack-protector-strong -L/usr/local/lib "
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main(int argc, char **argv)
4: {
5: return !!argv[argc];
6: }
/* end */
"clang -o conftest -I../../.ext/include/x86_64-darwin20 -I/var/folders/nv/xhhpglzx6m97w2dv050zxtsh0000gn/T/rubyc/ruby-2.7.1.dev/include -I/var/folders/nv/xhhpglzx6m97w2dv050zxtsh0000gn/T/rubyc/ruby-2.7.1.dev/ext/gdbm -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -DRUBY_DEBUG -fPIC -O3 -fno-fast-math -ggdb3 -Os -fdata-sections -ffunction-sections -pipe -I/var/folders/nv/xhhpglzx6m97w2dv050zxtsh0000gn/T/rubyc/ruby-2.7.1.dev -I/var/folders/nv/xhhpglzx6m97w2dv050zxtsh0000gn/T/rubyc/local/include -I/var/folders/nv/xhhpglzx6m97w2dv050zxtsh0000gn/T/rubyc/local/lib/libffi-3.2.1/include conftest.c -L. -L../.. -L. -L/var/folders/nv/xhhpglzx6m97w2dv050zxtsh0000gn/T/rubyc/local/lib /var/folders/nv/xhhpglzx6m97w2dv050zxtsh0000gn/T/rubyc/local/lib/libz.a -fstack-protector-strong -L/usr/local/lib -lruby.2.7-static -framework Security -framework Foundation -lpthread -ldl -lobjc -lgdbm -L. -L/var/folders/nv/xhhpglzx6m97w2dv050zxtsh0000gn/T/rubyc/local/lib /var/folders/nv/xhhpglzx6m97w2dv050zxtsh0000gn/T/rubyc/local/lib/libz.a -fstack-protector-strong -L/usr/local/lib "
conftest.c:14:57: error: use of undeclared identifier 'gdbm_open'
int t(void) { void ((*volatile p)()); p = (void ((*)()))gdbm_open; return !p; }
^
1 error generated.
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: /*top*/
4: extern int t(void);
5: int main(int argc, char **argv)
6: {
7: if (argc > 1000000) {
8: int (* volatile tp)(void)=(int (*)(void))&t;
9: printf("%d", (*tp)());
10: }
11:
12: return !!argv[argc];
13: }
14: int t(void) { void ((*volatile p)()); p = (void ((*)()))gdbm_open; return !p; }
/* end */
At this point my knowledge of the gem runs out. I know there's an included GDBM and I can see gdbm_open in there so it's almost like it's not finding it. I did wonder if it could be picking up on my system GDBM instead.
Having struggled with this I tried compiling rubyc to check I wasn't missing anything it obvious. It also fails in the same way.
Let me know if you need any more details - very happy to help dig into the details here but I'm a bit out my depth with native building.
Env:
OS: Mac Os X 11.1 (Big Sur)
Gem version: latest (master branch)
GDBM: installed via brew 1.18.1_1
The text was updated successfully, but these errors were encountered:
I can successfully build a project when there's no gems with native extensions, however when using native extensions running the output file crashes. I have two gems with native extensions
ruby-serial
andfxruby
and the issues occurs if just one or both gems are present in the Gemfile.With a native gem present I get an output file but this is also present at the end of the build output:
Looking at the gdbm error file (pass 1) the log has the following:
It seems there's some problem finding gdbm_open Looking at the pass2 error file it seems a similar story:
At this point my knowledge of the gem runs out. I know there's an included GDBM and I can see gdbm_open in there so it's almost like it's not finding it. I did wonder if it could be picking up on my system GDBM instead.
Having struggled with this I tried compiling rubyc to check I wasn't missing anything it obvious. It also fails in the same way.
Let me know if you need any more details - very happy to help dig into the details here but I'm a bit out my depth with native building.
Env:
OS: Mac Os X 11.1 (Big Sur)
Gem version: latest (master branch)
GDBM: installed via brew 1.18.1_1
The text was updated successfully, but these errors were encountered: