Where can I get the dlopen ? (unable to find the dlopen() function)

Hi
I had libsass, nodejs, etc, up and running in 13.2, and I’ve installed with no issues at all, following the instructions how to install libsass.
However, I already had a lot of stuff installed in the system, and probably one of those packages had install this lib.

But now, I’m lost.
Trying to compile the libsass , upon .configure, I get this error:

checking for shl_load... no
checking for shl_load in -ldld... no
checking for dlopen... no
checking for dlopen in -ldl... yes
checking whether a program can dlopen itself... no
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... no
checking whether to build static libraries... yes
checking for unistd.h... (cached) no
checking for size_t... no
checking for stdlib.h... (cached) no
checking for GNU libc compatible malloc... no
checking for floor... no
checking for getcwd... no
checking for strtol... no
checking for library containing dlopen... no
configure: error: unable to find the dlopen() function


Not sure, what I have to install… the devels of gcc ?

Thanks

It’s in glibc, in particular you need to have glibc-devel installed…

Thanks for the reply.
I think I had all that, I’ve just installed now ,the 32bit, but I get the same result :

S | Name                     | Summary                                         | Type   
--+--------------------------+-------------------------------------------------+--------
i | glibc                    | Standard Shared Libraries (from the GNU C Lib-> | package
i | glibc-32bit              | Standard Shared Libraries (from the GNU C Lib-> | package
i | glibc-devel              | Include Files and Libraries Mandatory for Dev-> | package
i | glibc-devel-32bit        | Include Files and Libraries Mandatory for Dev-> | package
  | glibc-devel-static       | C library static libraries for -static linking  | package
  | glibc-devel-static-32bit | C library static libraries for -static linking  | package
i | glibc-extra              | Extra binaries from GNU C Library               | package
  | glibc-html               | HTML Documentation for the GNU C Library        | package
  | glibc-i18ndata           | Database Sources for 'locale'                   | package
  | glibc-info               | Info Files for the GNU C Library                | package
i | glibc-locale             | Locale Data for Localized Programs              | package
i | glibc-locale-32bit       | Locale Data for Localized Programs              | package
  | glibc-profile            | Libc Profiling and Debugging Versions           | package
  | glibc-profile-32bit      | Libc Profiling and Debugging Versions           | package
  | glibc-utils              | Development utilities from GNU C library        | package
  | glibc-utils-32bit        | Development utilities from GNU C library        | package
i | linux-glibc-devel        | Linux headers for userspace development         | package

Or do I need more from this list ?
Thanks

I just install the libconfig+±devel , and libconfig++9 , but nothing yet.

I’ll paste all the process I’m doing, perhaps it can point some other stuff :

daniel@myopensuse:~/DevApp/libsass> autoreconf --force --install
libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `script'.
libtoolize: copying file `script/ltmain.sh'
libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'.
libtoolize: copying file `m4/libtool.m4'
libtoolize: copying file `m4/ltoptions.m4'
libtoolize: copying file `m4/ltsugar.m4'
libtoolize: copying file `m4/ltversion.m4'
libtoolize: copying file `m4/lt~obsolete.m4'
libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
configure.ac:33: installing 'script/config.guess'
configure.ac:33: installing 'script/config.sub'
configure.ac:14: installing 'script/install-sh'
configure.ac:14: installing 'script/missing'
GNUmakefile.am:33: warning: compiling 'sassc.c' with per-target flags requires 'AM_PROG_CC_C_O' in 'configure.ac'
GNUmakefile.am: installing 'script/depcomp'
parallel-tests: installing 'script/test-driver'
/usr/share/automake-1.13/am/ltlibrary.am: warning: 'libsass.la': linking libtool libraries using a non-POSIX
/usr/share/automake-1.13/am/ltlibrary.am: archiver requires 'AM_PROG_AR' in 'configure.ac'
src/GNUmakefile.am:31:   while processing Libtool library 'libsass.la'
daniel@myopensuse:~/DevApp/libsass> ./configure --disable-tests --disable-static --enable-shared --prefix/usr
configure: error: unrecognized option: `--prefix/usr'
Try `./configure --help' for more information
daniel@myopensuse:~/DevApp/libsass> ./configure --disable-tests --disable-static --enable-shared --prefix=/usr
configure: loading site script /usr/share/site/x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for g++... no
checking for c++... no
checking for gpp... no
checking for aCC... no
checking for CC... no
checking for cxx... no
checking for cc++... no
checking for cl.exe... no
checking for FCC... no
checking for KCC... no
checking for RCC... no
checking for xlC_r... no
checking for xlC... no
checking whether we are using the GNU C++ compiler... no
checking whether g++ accepts -g... no
checking dependency style of g++... none
checking how to run the C++ preprocessor... /lib/cpp
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... no
checking for sys/types.h... no
checking for sys/stat.h... no
checking for stdlib.h... no
checking for string.h... no
checking for memory.h... no
checking for strings.h... no
checking for inttypes.h... no
checking for stdint.h... no
checking for unistd.h... no
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... no
checking for ar... ar
checking for dlltool... no
checking for dllwrap... no
checking for windres... no
checking build system type... x86_64-suse-linux-gnu
checking host system type... x86_64-suse-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /usr/bin/sed
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/x86_64-suse-linux/bin/ld
checking if the linker (/usr/x86_64-suse-linux/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-suse-linux-gnu file names to x86_64-suse-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-suse-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/x86_64-suse-linux/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... false
checking how to associate runtime and link libraries... printf %s

checking for archiver @FILE support... no
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... failed
checking for sysroot... no
checking for mt... mt
checking if mt is a manifest tool... no
checking for dlfcn.h... no
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... no
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/x86_64-suse-linux/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking for shl_load... no
checking for shl_load in -ldld... no
checking for dlopen... no
checking for dlopen in -ldl... yes
checking whether a program can dlopen itself... no
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for unistd.h... (cached) no
checking for size_t... no
checking for stdlib.h... (cached) no
checking for GNU libc compatible malloc... no
checking for floor... no
checking for getcwd... no
checking for strtol... no
checking for library containing dlopen... no
configure: error: unable to find the dlopen() function


Thanks


Reading it now, all this lines say that I have no g++ , etc, installed ?

checking for g++… no
checking for c++… no
checking for gpp… no
checking for aCC… no
checking for CC… no
checking for cxx… no
checking for cc++… no
checking for cl.exe… no
checking for FCC… no
checking for KCC… no
checking for RCC… no
checking for xlC_r… no
checking for xlC… no

Hi
Why not follow the spec file ‘BuildRequires’ on what’s used and also the configure options…
https://build.opensuse.org/package/view_file/multimedia:libs/libass/libass.spec?expand=1

Or just use the rpm…

ok, that’s interesting. Is it going to get the latest version of libsass ? , Or one must edit that file to change the version ?

Tahnks

Hi
If 0.13.1 is the latest version, then yes, else just wait for it to get pushed to Tumbleweed?

As Malcolm suggests, it’s available as a pre-built package at the following link. If it’s not the latest, you can submit a request to re-build through https://bugzilla.opensuse.org.

https://software.opensuse.org/package/libsass

If you still wish to compile from source and can’t find a dependency, you can post a question about that particular file you can’t locate…

TSU

I’ll repost here what I posted to your other thread about libsass…

Reading up a bit on what libsass is, it appears that originally it was written in Ruby, but people thought so much of it that it was ported to C/C++ as “libsass” so that it could be wrapped for use in other languages.

This suggests that although you’d probably still need to compile on your own for latest features and functionality (as of today, latest git contrib was 2 mths ago), you’d likely be able to get a “wrapped” libsass ready to go for the specific language you are developing in. If openSUSE isn’t providing latest, there is a pretty good likelihood it’s already available in the official repos for whatever language you are using (ie python = pip, ruby = gem, node = npm, etc). If you want to explore the official repos for your language, I’ve done some writeups how to setup for Ruby and Nodejs at the following wiki pages. A similar approach should be implemented for python using virtualenv.

https://en.opensuse.org/User:Tsu2/Install_Ruby
https://en.opensuse.org/User:Tsu2/nodejs

HTH,
TSU

Thanks all
After all, I was missing the c++ from the gcc-c++ package.
I thought glib was enough, but no. So I’ve installed that, and gcc-c++5 and gcc-c++48 just in case :slight_smile:
Don’t know the difference between then, or witch package is supplying the dlopen() function, but I got this working, so it’s ok !

Thanks

They are different versions of the GCC C++ compiler.

You need the one matching the rest of your installed gcc. In Tumbleweed, gcc5 is the default meanwhile, so gcc-c++5 os what you need.

But 4.8 is still available too because there are big changes in 5.0 and you might need the older one for compiling certain programs.

or witch package is supplying the dlopen() function

glibc-devel.

But configure checks those things by compiling small test programs. As you didn’t have gcc-c++ installed, this failed leading to the error message about “unable to find the dlopen() function”.