Feature #4946


Building libruby-static.a with option nodynamic and --with-static-link-ext doesn't disable dlopen

Added by regularfry (Alex Young) almost 11 years ago. Updated over 9 years ago.

Target version:


I uncomment option nodynamic in ext/Setup and run ./configure --with-static-link-ext, then make libruby-static.a

I then compile this:

/* trial.c */
#include "ruby.h"
int main(){
return 0;

like so:

gcc -c trial.c -o trial.o -Iruby-1.9.2-p180/include -Iruby-1.9.2-p180/.ext/include/i686-linux
gcc -static trial.o -Lruby-1.9.2-p180 -lruby-static -lpthread -lrt -ldl -lcrypt -lm -o trial

And I see this warning:

ruby-1.9.2-p180/libruby-static.a(dln.o): In function `dln_load':
/home/alex/projects/scratch/ruby/ruby-1.9.2-p180/dln.c:1276: warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking

I specifically do not want any run-time code loading capability, but I can see no documented way to disable dlopen; is there any way to silence this warning?

Actions #1

Updated by nobu (Nobuyoshi Nakada) almost 11 years ago

  • Tracker changed from Bug to Feature

There is no way to disable dynamic loading now.
--with-static-linked-ext just let all bundled extension libraries linked statically.

Actions #2

Updated by naruse (Yui NARUSE) almost 11 years ago

  • Target version changed from 1.9.2 to 2.0.0

Updated by mame (Yusuke Endoh) about 10 years ago

  • Status changed from Open to Assigned
  • Assignee set to nobu (Nobuyoshi Nakada)
  • Priority changed from Normal to 3
Actions #4

Updated by nobu (Nobuyoshi Nakada) over 9 years ago

  • Status changed from Assigned to Feedback

Can't you disable it with the following?
ac_cv_func_dlopen=no configure

Actions #5

Updated by nobu (Nobuyoshi Nakada) over 9 years ago

  • Status changed from Feedback to Closed
  • % Done changed from 0 to 100

This issue was solved with changeset r37821.
Alex, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you. --disable-dln


Also available in: Atom PDF