Re: Oralcle 9i for Linux: Installation linking problem

From: blurg <blurg_at_gluipzak.nl>
Date: 23 Sep 2001 16:54:22 -0700
Message-ID: <e3d01a7f.0109231554.7868c337_at_posting.google.com>


stefan.steinert_at_intralab.de (steinert) wrote in message news:<6deb47bd.0109230931.4423a8a0_at_posting.google.com>...
> Hi all,
>
> today I tried to install the Oracle 9i database for Linux. After
> properly setting up the environment and tuning the kernel params as
> described in the quick installation manual the installation works as
> expected.
>
> But when it comes to linking the oracle db components (this is the
> second part of the installation process) I run into problems. The
> compiler claims about undefined references. Here is an example taken
> from the install logfile $ORACLE_HOME/install/make.log:
>
> ---cut here---
> /usr/bin/make -f ins_net_client.mk client_sharedlib
> ORACLE_HOME=/opt/oracle/product/9.0.1
> /opt/oracle/product/9.0.1/bin/genclntsh
> /opt/oracle/product/9.0.1/lib/libgeneric9.a(skgfr.o): In function
> `skgfrpini':
> skgfr.o(.text+0x125): undefined reference to `__cmpdi2'
> /lib/libc.so.6: undefined reference to `_dl_lazy_at_GLIBC_2.1.1'
> /lib/libc.so.6: undefined reference to
> `_dl_dst_substitute_at_GLIBC_2.1.1'
> /lib/libc.so.6: undefined reference to `_dl_out_of_memory_at_GLIBC_2.2'
> /lib/libc.so.6: undefined reference to `_dl_relocate_object_at_GLIBC_2.0'
> /lib/libc.so.6: undefined reference to `_dl_clktck_at_GLIBC_2.2'
> /lib/libc.so.6: undefined reference to
> `__libc_enable_secure_at_GLIBC_2.0'
> /lib/libc.so.6: undefined reference to `_dl_catch_error_at_GLIBC_2.0'
> /lib/libc.so.6: undefined reference to `_dl_platformlen_at_GLIBC_2.1.1'
> /lib/libc.so.6: undefined reference to
> `_dl_lookup_versioned_symbol_skip_at_GLIBC_2.0'
> /lib/libc.so.6: undefined reference to
> `_dl_lookup_versioned_symbol_at_GLIBC_2.0'
> /lib/libc.so.6: undefined reference to `_dl_mcount_at_GLIBC_2.1'
> /lib/libc.so.6: undefined reference to `_dl_dst_count_at_GLIBC_2.1.1'
> /lib/libc.so.6: undefined reference to
> `_dl_initial_searchlist_at_GLIBC_2.1'
> /lib/libc.so.6: undefined reference to `_dl_start_profile_at_GLIBC_2.1'
> /lib/libc.so.6: undefined reference to `_dl_lookup_symbol_at_GLIBC_2.0'
> /lib/libc.so.6: undefined reference to `__libc_stack_end_at_GLIBC_2.1'
> /lib/libc.so.6: undefined reference to `_dl_argv_at_GLIBC_2.2'
> /lib/libc.so.6: undefined reference to `_dl_loaded_at_GLIBC_2.1'
> /lib/libc.so.6: undefined reference to `_dl_origin_path_at_GLIBC_2.1.1'
> /lib/libc.so.6: undefined reference to
> `_dl_check_map_versions_at_GLIBC_2.2'
> /lib/libc.so.6: undefined reference to `_dl_map_object_at_GLIBC_2.0'
> /lib/libc.so.6: undefined reference to `_dl_main_searchlist_at_GLIBC_2.1'
> /lib/libc.so.6: undefined reference to `_dl_debug_mask_at_GLIBC_2.2.3'
> /lib/libc.so.6: undefined reference to `_dl_load_lock_at_GLIBC_2.2'
> /lib/libc.so.6: undefined reference to `_dl_profile_at_GLIBC_2.1'
> /lib/libc.so.6: undefined reference to `_dl_debug_state_at_GLIBC_2.0'
> /lib/libc.so.6: undefined reference to `_dl_init_all_dirs_at_GLIBC_2.2'
> /lib/libc.so.6: undefined reference to `_r_debug_at_GLIBC_2.0'
> /lib/libc.so.6: undefined reference to `_dl_unload_cache_at_GLIBC_2.1'
> /lib/libc.so.6: undefined reference to `_dl_signal_error_at_GLIBC_2.0'
> /lib/libc.so.6: undefined reference to `_dl_debug_printf_at_GLIBC_2.2.3'
> /lib/libc.so.6: undefined reference to `_dl_init_at_GLIBC_2.2'
> /lib/libc.so.6: undefined reference to `_dl_all_dirs_at_GLIBC_2.2'
> /lib/libc.so.6: undefined reference to `_dl_map_object_deps_at_GLIBC_2.0'
> /lib/libc.so.6: undefined reference to `_dl_nloaded_at_GLIBC_2.2'
> /lib/libc.so.6: undefined reference to `_dl_profile_map_at_GLIBC_2.1'
> /lib/libc.so.6: undefined reference to `_dl_profile_output_at_GLIBC_2.1'
> /lib/libc.so.6: undefined reference to `_dl_pagesize_at_GLIBC_2.2'
> /lib/libc.so.6: undefined reference to
> `_dl_lookup_symbol_skip_at_GLIBC_2.0'
> /lib/libc.so.6: undefined reference to `_dl_fpu_control_at_GLIBC_2.1'
> /usr/lib/libdl.so: undefined reference to `_dl_catch_error'
> /lib/libc.so.6: undefined reference to
> `_dl_global_scope_alloc_at_GLIBC_2.1'
> Created /opt/oracle/product/9.0.1/lib/libclntst9.a
> /opt/oracle/product/9.0.1/bin/genagtsh
> /opt/oracle/product/9.0.1/lib/libagtsh.so 1.0
> /usr/bin/make -f ins_plsql.mk install
> ORACLE_HOME=/opt/oracle/product/9.0.1
> chmod 755 /opt/oracle/product/9.0.1/bin
> rm -f wrap
> Linking wrap
> gcc -o wrap -L/opt/oracle/product/9.0.1/plsql/lib/
> -L/opt/oracle/product/9.0.1/lib/
> /opt/oracle/product/9.0.1/plsql/lib/s0plsw.o -l
> psa9 -lpls9 -lplp9 -lclntsh `cat
> /opt/oracle/product/9.0.1/lib/ldflags` -lnsslb9 -lncrypt9 -lnsgr9
> -lnzjs9 -ln9 -lnl9 -lnro9 `c
> at /opt/oracle/product/9.0.1/lib/ldflags` -lnsslb9 -lncrypt9
> -lnsgr9 -lnzjs9 -ln9 -lnl9 -lclient9 -lvsn9 -lwtc9 -lcommon9 -lgene
> ric9 -lwtc9 -lmm -lnls9 -lcore9 -lnls9 -lcore9 -lnls9 -lxml9 -lcore9
> -lunls9 `cat /opt/oracle/product/9.0.1/lib/ldflags` -lnsslb
> 9 -lncrypt9 -lnsgr9 -lnzjs9 -ln9 -lnl9 -lnro9 `cat
> /opt/oracle/product/9.0.1/lib/ldflags` -lnsslb9 -lncrypt9 -lnsgr9
> -lnzjs9 -ln9
> -lnl9 -lclient9 -lvsn9 -lwtc9 -lcommon9 -lgeneric9 -ltrace9 -lnls9
> -lcore9 -lnls9 -lcore9 -lnls9 -lxml9 -lcore9 -lunls9 -lclient
> 9 -lvsn9 -lwtc9 -lcommon9 -lgeneric9 -lnls9 -lcore9 -lnls9 -lcore9
> -lnls9 -lxml9 -lcore9 -lunls9 `cat /opt/oracle/product/9.0.1/
> lib/sysliblist` -ldl -lm /opt/oracle/product/9.0.1/lib/libplc9.a
> -lpls9 -lclient9 -lnl9 -lnro9 -ln9 /opt/oracle/product/9.0.1/rdbm
> s/lib/kpudfo.o -lmm -ltrace9 -lgeneric9 -lcommon9 -lslax9 -lcore9
> -lunls9 -lsnls9 -lnls9 -lcore9 -lsql9 `cat /opt/oracle/produc
> t/9.0.1/lib/sysliblist`
> -Wl,-rpath,/opt/oracle/product/9.0.1/lib:/lib:/usr/lib -lm `cat
> /opt/oracle/product/9.0.1/lib/sysliblist`
> -ldl -lm
> /usr/bin/ld: cannot find -lclntsh
> collect2: ld returned 1 exit status
> make: *** [wrap] Error 1
> ---cut here---
>
> The symbols look like they were missing from glibc. I have a Redhat
> 7.1 system with the standard glibc packages:
> glibc-common-2.2.2-10
> glibc-2.2.2-10
> glibc-devel-2.2.2-10
>
> I use a self-compiled 2.4.9 kernel downloaded from kernel.org.
>
> When I look for the symbols using objdump it looks like they are
> present, e.g. the command:
> objdump --dynamic-syms /lib/libc-2.2.2.so |grep _dl_lazy
>
> produces the output:
> 00000000 DO *UND* 00000004 GLIBC_2.1.1 _dl_lazy
>
> The /etc/ld.so.conf file contains /lib (among others).
> LD_LIBRARY_PATH also contains /lib but I also tried it without because
> this should not be necessary.
>
> Does anybody have an idea what is going on here?
>
> thanks and bye,
> stefan

Hi there, I am installing this Oracle stuff too today. This error is common, if I'm right.
The problem is here, that the libclntsh.a file is not correctly created.
There is a bug in the Oracle installation:

in the oracle home dir there is in the bin dir a file 'genclntsh' which creates
the libclntst9.a instead of libclntsh.a ( and not libclntsh9.a as you may think)

This is the problem which apply to you too I guess. I am busy with a Debian system, so that's not Redhat or SuSE :) (dont' forget to run the genclntst from the same bin dir AFTER you moved the incorrectly named file created by genclntsh)

But then, if you click 'retry' you will find the error which I have now:

the 'gets' function is dangerous and should not be used

and then it wil quit :(
I am thinking about what to do. I don't know. Received on Mon Sep 24 2001 - 01:54:22 CEST

Original text of this message