Closed Bug 1721 Opened 26 years ago Closed 12 years ago

Can't compile/link with dynamic libs on AIX

Categories

(Directory :: PerLDAP, defect, P5)

Other
AIX

Tracking

(Not tracked)

RESOLVED INCOMPLETE

People

(Reporter: leif, Assigned: leif)

Details

I have downloaded the Netscape LDAP development libs from Netscape's site that are specific to my version of AIX... I ran the 'perl Makefile.PL' script per the instructions in the README file and then ran a make. What I got: me@mybox$ make LD_RUN_PATH="" ld -o ./blib/arch/auto/Mozilla/LDAP/API/API.so -H512 -T5 12 -bhalt:4 -bM:SRE -bI:/usr/local/products/perl/lib/aix/5.00404/CORE/perl.exp - bE:API.exp -b noentry -lc -L/usr/local/lib API.o ld: 0711-317 ERROR: Undefined symbol: .ldap_value_free ld: 0711-317 ERROR: Undefined symbol: .ldap_value_free_len [and about 70 more of these] I've reinstalled at least 3 times and have checked and rechecked all the relevant binaries and include headers and so forth: no go. Has anyone else had similar problems? -- Patrick Lewis College of William & Mary, IT Engineering ptlew1@mail.wm.edu
Status: NEW → ASSIGNED
More from Patrick: Hi, Yeah, I thought it was odd that it didn't add those parameters in there. I did run perl Makefile.PL as instructed, and I am running PERL 5.004_04. One definite problem with AIX is that it doesn't seem to like dynamically-linked libraries. The LDAP libraries make extensive use of these. The log you requested: Script started on Thu Dec 3 09:02:22 1998 web@warthog$ perl Makefile.PL PerLDAP - Perl 5 Module for LDAP ================================ Directory containing 'include' and 'lib' directory of the Netscape LDAP Software Developer Kit (default: /usr): /usr/local/products/ldapsdk Using LDAPv3 Developer Kit (default: yes)? yes Include SSL Support (default: yes)? yes Checking if your kit is complete... Looks good Note (probably harmless): No library found for -lldapssl30 Writing Makefile for Mozilla::LDAP::API web@warthog$ ls /usr/local/products/ldapsdk/lib libldapssl30.so* web@warthog$ make mkdir ./blib mkdir ./blib/lib mkdir ./blib/lib/Mozilla mkdir ./blib/lib/Mozilla/LDAP cp Conn.pm ./blib/lib/Mozilla/LDAP/Conn.pm cp LDIF.pm ./blib/lib/Mozilla/LDAP/LDIF.pm cp Utils.pm ./blib/lib/Mozilla/LDAP/Utils.pm cp API.pm ./blib/lib/Mozilla/LDAP/API.pm AutoSplitting Mozilla::LDAP::API (./blib/lib/auto/Mozilla/LDAP/API) cp Entry.pm ./blib/lib/Mozilla/LDAP/Entry.pm /usr/bin/perl "-I/usr/local/products/perl/lib/aix/5.00404" "-I/usr/local/products/perl/lib" -e 'use ExtUtils::Mksymlists; Mksymlists("NAME" => "Mozilla:: LDAP::API", "DL_FUNCS" => { }, "DL_VARS" => []);' /usr/bin/perl -I/usr/local/products/perl/lib/aix/5.00404 -I/usr/local/products/perl/lib /usr/local/products/perl/lib/ExtUtils/xsubpp -typemap /usr/local/products/perl/lib/ExtUtils/typemap -typemap typemap API.xs >API.tc && mv API.tc API.c gcc -c -I/usr/local/products/ldapsdk/include -qmaxmem=8192 -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -I/usr/local/include -O -DVERSION=\"1.00\" -DXS_VERSION=\"1.00\" -fpic -I/usr/local/products/perl/lib/aix/5.00404/CORE -DUSE_SSL API.c gcc: unrecognized option `-qmaxmem=8192' mkdir ./blib/arch mkdir ./blib/arch/auto mkdir ./blib/arch/auto/Mozilla mkdir ./blib/arch/auto/Mozilla/LDAP mkdir ./blib/arch/auto/Mozilla/LDAP/API Running Mkbootstrap for Mozilla::LDAP::API () chmod 644 API.bs LD_RUN_PATH="" ld -o ./blib/arch/auto/Mozilla/LDAP/API/API.so -H512 -T512 -bhalt:4 -bM:SRE -bI:/usr/local/products/perl/lib/aix/5.00404/CORE/perl.exp -bE:API.exp -b noentry -lc -L/usr/local/lib API.o ld: 0711-317 ERROR: Undefined symbol: .ldap_value_free ld: 0711-317 ERROR: Undefined symbol: .ldap_value_free_len ld: 0711-317 ERROR: Undefined symbol: .ldap_abandon ld: 0711-317 ERROR: Undefined symbol: .ldap_add ld: 0711-317 ERROR: Undefined symbol: .ldap_mods_free ld: 0711-317 ERROR: Undefined symbol: .ldap_add_s ld: 0711-317 ERROR: Undefined symbol: .ldap_ber_free ld: 0711-317 ERROR: Undefined symbol: .ldap_bind ld: 0711-317 ERROR: Undefined symbol: .ldap_bind_s ld: 0711-317 ERROR: Undefined symbol: .ldap_compare ld: 0711-317 ERROR: Undefined symbol: .ldap_compare_s ld: 0711-317 ERROR: Undefined symbol: .ldap_count_entries ld: 0711-317 ERROR: Undefined symbol: .ldap_create_filter ld: 0711-317 ERROR: Undefined symbol: .ldap_delete ld: 0711-317 ERROR: Undefined symbol: .ldap_delete_s ld: 0711-317 ERROR: Undefined symbol: .ldap_dn2ufn ld: 0711-317 ERROR: Undefined symbol: .ldap_err2string ld: 0711-317 ERROR: Undefined symbol: .ldap_explode_dn ld: 0711-317 ERROR: Undefined symbol: .ldap_explode_rdn ld: 0711-317 ERROR: Undefined symbol: .ldap_first_attribute ld: 0711-317 ERROR: Undefined symbol: .ldap_memfree ld: 0711-317 ERROR: Undefined symbol: .ldap_first_entry ld: 0711-317 ERROR: Undefined symbol: .ldap_free_friendlymap ld: 0711-317 ERROR: Undefined symbol: .ldap_free_urldesc ld: 0711-317 ERROR: Undefined symbol: .ldap_friendly_name ld: 0711-317 ERROR: Undefined symbol: .ldap_get_dn ld: 0711-317 ERROR: Undefined symbol: .ldap_getfilter_free ld: 0711-317 ERROR: Undefined symbol: .ldap_getfirstfilter ld: 0711-317 ERROR: Undefined symbol: .ldap_get_lderrno ld: 0711-317 ERROR: Undefined symbol: .ldap_getnextfilter ld: 0711-317 ERROR: Undefined symbol: .ldap_get_option ld: 0711-317 ERROR: Undefined symbol: .ldap_get_values ld: 0711-317 ERROR: Undefined symbol: .ldap_get_values_len ld: 0711-317 ERROR: Undefined symbol: .ldap_init ld: 0711-317 ERROR: Undefined symbol: .ldap_init_getfilter ld: 0711-317 ERROR: Undefined symbol: .ldap_init_getfilter_buf ld: 0711-317 ERROR: Undefined symbol: .ldap_is_ldap_url ld: 0711-317 ERROR: Undefined symbol: .ldap_modify ld: 0711-317 ERROR: Undefined symbol: .ldap_modify_s ld: 0711-317 ERROR: Undefined symbol: .ldap_modrdn ld: 0711-317 ERROR: Undefined symbol: .ldap_modrdn_s ld: 0711-317 ERROR: Undefined symbol: .ldap_modrdn2 ld: 0711-317 ERROR: Undefined symbol: .ldap_modrdn2_s ld: 0711-317 ERROR: Undefined symbol: .ldap_msgfree ld: 0711-317 ERROR: Undefined symbol: .ldap_msgid ld: 0711-317 ERROR: Undefined symbol: .ldap_msgtype ld: 0711-317 ERROR: Undefined symbol: .ldap_multisort_entries ld: 0711-317 ERROR: Undefined symbol: .ldap_next_attribute ld: 0711-317 ERROR: Undefined symbol: .ldap_next_entry ld: 0711-317 ERROR: Undefined symbol: .ldap_perror ld: 0711-317 ERROR: Undefined symbol: .ldap_result ld: 0711-317 ERROR: Undefined symbol: .ldap_result2error ld: 0711-317 ERROR: Undefined symbol: .ldap_search ld: 0711-317 ERROR: Undefined symbol: .ldap_search_s ld: 0711-317 ERROR: Undefined symbol: .ldap_search_st ld: 0711-317 ERROR: Undefined symbol: .ldap_set_filter_additions ld: 0711-317 ERROR: Undefined symbol: .ldap_set_lderrno ld: 0711-317 ERROR: Undefined symbol: .ldap_set_option ld: 0711-317 ERROR: Undefined symbol: .ldap_set_rebind_proc ld: 0711-317 ERROR: Undefined symbol: .ldap_simple_bind ld: 0711-317 ERROR: Undefined symbol: .ldap_simple_bind_s ld: 0711-317 ERROR: Undefined symbol: .ldap_sort_entries ld: 0711-317 ERROR: Undefined symbol: .ldap_unbind ld: 0711-317 ERROR: Undefined symbol: .ldap_unbind_s ld: 0711-317 ERROR: Undefined symbol: .ldap_url_parse ld: 0711-317 ERROR: Undefined symbol: .ldap_url_search ld: 0711-317 ERROR: Undefined symbol: .ldap_url_search_s ld: 0711-317 ERROR: Undefined symbol: .ldap_url_search_st ld: 0711-317 ERROR: Undefined symbol: .ldap_version ld: 0711-317 ERROR: Undefined symbol: .ldapssl_client_init ld: 0711-317 ERROR: Undefined symbol: .ldapssl_init ld: 0711-317 ERROR: Undefined symbol: .ldapssl_install_routines ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information. make: The error code from the last command is 8. Stop. web@warthog$ exit script done on Thu Dec 3 09:03:58 1998
Priority: P2 → P3
Setting all current Open/Normal to M4.
Clearing "M" field since Directory product is not used for 5.0 specific project bug metrics and will mess up our queries on milestones.
From: matts@us.ibm.com Leif, I was working on getting Perldap installed on aix 4.3.2 and was having difficulty with the make. When checking on the bugs for Perldap someone else had the same problem back in december and opened a bug report on Perldap, which in turn shows that it has be reassigned to you. Basically the problem is that the ldapssl30.so library seems to not be loaded so when linking against it you get a bunch of messages like: ld: 0711-317 ERROR: Undefined symbol: .ldap_value_free ld: 0711-317 ERROR: Undefined symbol: .ldap_value_free_len ld: 0711-317 ERROR: Undefined symbol: .ldap_abandon ld: 0711-317 ERROR: Undefined symbol: .ldap_add ld: 0711-317 ERROR: Undefined symbol: .ldap_mods_free ld: 0711-317 ERROR: Undefined symbol: .ldap_add_s ld: 0711-317 ERROR: Undefined symbol: .ldap_ber_free ld: 0711-317 ERROR: Undefined symbol: .ldap_bind ld: 0711-317 ERROR: Undefined symbol: .ldap_bind_s ld: 0711-317 ERROR: Undefined symbol: .ldap_compare ld: 0711-317 ERROR: Undefined symbol: .ldap_compare_s ld: 0711-317 ERROR: Undefined symbol: .ldap_count_entries ld: 0711-317 ERROR: Undefined symbol: .ldap_create_filter ld: 0711-317 ERROR: Undefined symbol: .ldap_delete ld: 0711-317 ERROR: Undefined symbol: .ldap_delete_s ld: 0711-317 ERROR: Undefined symbol: .ldap_dn2ufn ld: 0711-317 ERROR: Undefined symbol: .ldap_err2string ld: 0711-317 ERROR: Undefined symbol: .ldap_explode_dn ld: 0711-317 ERROR: Undefined symbol: .ldap_explode_rdn Has there been any progress on this bug. We are really interested in using the LDAP SDK but need to get passed this problem quickly. Thanks, Matt Stokes Software Engineer CLPD, MCP
From: matts@us.ibm.com Leif, I was working on getting Perldap installed on aix 4.3.2 and was having difficulty with the make. When checking on the bugs for Perldap someone else had the same problem back in december and opened a bug report on Perldap, which in turn shows that it has be reassigned to you. Basically the problem is that the ldapssl30.so library seems to not be loaded so when linking against it you get a bunch of messages like: ld: 0711-317 ERROR: Undefined symbol: .ldap_value_free ld: 0711-317 ERROR: Undefined symbol: .ldap_value_free_len ld: 0711-317 ERROR: Undefined symbol: .ldap_abandon ld: 0711-317 ERROR: Undefined symbol: .ldap_add ld: 0711-317 ERROR: Undefined symbol: .ldap_mods_free ld: 0711-317 ERROR: Undefined symbol: .ldap_add_s ld: 0711-317 ERROR: Undefined symbol: .ldap_ber_free ld: 0711-317 ERROR: Undefined symbol: .ldap_bind ld: 0711-317 ERROR: Undefined symbol: .ldap_bind_s ld: 0711-317 ERROR: Undefined symbol: .ldap_compare ld: 0711-317 ERROR: Undefined symbol: .ldap_compare_s ld: 0711-317 ERROR: Undefined symbol: .ldap_count_entries ld: 0711-317 ERROR: Undefined symbol: .ldap_create_filter ld: 0711-317 ERROR: Undefined symbol: .ldap_delete ld: 0711-317 ERROR: Undefined symbol: .ldap_delete_s ld: 0711-317 ERROR: Undefined symbol: .ldap_dn2ufn ld: 0711-317 ERROR: Undefined symbol: .ldap_err2string ld: 0711-317 ERROR: Undefined symbol: .ldap_explode_dn ld: 0711-317 ERROR: Undefined symbol: .ldap_explode_rdn Has there been any progress on this bug. We are really interested in using the LDAP SDK but need to get passed this problem quickly. Thanks, Matt Stokes Software Engineer CLPD, MCP
Severity: normal → major
Priority: P3 → P2
I don't know if this will help, but this was posted in newsgroup: Well - for some reason I couldn't get the AIX 4.3.2 to understand how to find /usr/local/ldapsdk/lib/libldapssl30.so and the default Makefile created by "perl makefile.PL" failed. I "fixed" this adding the absolute path to lib-file: LD_RUN_PATH="$(LD_RUN_PATH)" $(LD) -o $@ $(LDDLFLAGS) $(LDFROM) $(OTHERLDFLAGS) $(MYEXTLIB) $(PERL_ARCHIVE) $(LDLOADLIBS) $(EXPORT_LIST) /usr/local/ldapsdk/lib/libldapssl30.so Seems to work. Jari Jari.Pirhonen@atbusiness.com
From: Matt Stokes <matts@us.ibm.com> Actually, we were finally able to get it compiled. We were using gcc to compile and had to edit the make file as follows: 1) Changed: CC=gcc 2) Appended to LDDLFLAGS = -L/usr/local/lib -lldapssl30 -brtl That was it. Everything compiled fine from there out and we are running it now.
Yep, AIX. |--------+-----------------------> | | Leif Hedstrom| | | <leif@netscap| | | e.com> | | | | | | 04/08/99 | | | 06:50 PM | | | | |--------+-----------------------> >---------------------------------------------------------------------------| | | | To: Matthew Stokes/Somers/IBM | | cc: | | Subject: Re: Perldap Bug #1721 | >---------------------------------------------------------------------------| matts@us.ibm.com wrote: > Actually, we were finally able to get it compiled. We were using gcc to compile > and had to edit the make file as follows: > > 1) Changed: > CC=gcc > 2) Appended to LDDLFLAGS = > -L/usr/local/lib -lldapssl30 -brtl > > That was it. Everything compiled fine from there out and we are running it > now. Great, I'll see if I can (easily...) add that into the Makefile.PL file. Is this option needed/available for all AIX versions, or just the one you're running on? I need to make some sort of "#ifdef" in the Makefile.PL, for AIX. Btw, what does $Config{"osname"} say on your Perl installation? Is it AIX? It's in the module named Config.pm, part of the normal Perl5 installation. Thanks! -- leif
Well - for some reason I couldn't get the AIX 4.3.2 to understand how to find /usr/local/ldapsdk/lib/libldapssl30.so and the default Makefile created by "perl makefile.PL" failed. I "fixed" this adding the absolute path to lib-file: LD_RUN_PATH="$(LD_RUN_PATH)" $(LD) -o $@ $(LDDLFLAGS) $(LDFROM) $(OTHERLDFLAGS) $(MYEXTLIB) $(PERL_ARCHIVE) $(LDLOADLIBS) $(EXPORT_LIST) /usr/local/ldapsdk/lib/libldapssl30.so Seems to work. Jari Jari.Pirhonen@atbusiness.com
Priority: P2 → P1
This bug has not been touched for more than nine months. In most cases, that means it has "slipped through the net". Please could the owner take a moment to add a comment to the bug with current status, and/or close it. Thank you :-) Gerv
There doesn't seem to be any listeners to this, so close as INVALID. If anyone can provide a test system for AIX, I'd be happy to make sure we fix this for PerLDAP v1.5.
Priority: P1 → P5
(In reply to comment #11) > There doesn't seem to be any listeners to this, so close as INVALID. If anyone > can provide a test system for AIX, I'd be happy to make sure we fix this for > PerLDAP v1.5. The problem is that some perl versions are built where the '-brtl' option to the linker is not passed, so libraries which end with the '.so' extension are not found during a search. This seems to be fixed in more recent versions of Perl for AIX. For me, the following change fixes the issue with Perl 5.6 (which ships with AIX 5.1): Index: Makefile.PL =================================================================== RCS file: /cvsroot/mozilla/directory/perldap/Makefile.PL,v retrieving revision 1.16 diff -u -u -r1.16 Makefile.PL --- Makefile.PL 5 Oct 2000 19:47:28 -0000 1.16 +++ Makefile.PL 28 Nov 2005 18:03:35 -0000 @@ -167,6 +167,10 @@ # push(@extras, POLLUTE => 1) if ($] >= 5.006); +if ($osname =~ /aix/i) { + push(@extras, LDDLFLAGS => $Config{'lddlflags'} . " -brtl $lib_line"); +} + # # Ok, let's do it! #
This is not being actively tracked, and probably nobody cares about it.
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.