#47700 Unresolved external symbol references break loading of the ACL plugin
Closed: wontfix None Opened 10 years ago by nhosoi.

Ticket was cloned from Red Hat Bugzilla (product Fedora): Bug 1066137

Created attachment 864264
Add "const" in the right places to fix mismatches

Description of problem:
Various functions in the directory server are declared with extern "C" linkage,
causing the compiler to emit references to an unmangled symbol name, but
because their definitions don't match the declarations, and the definitions are
compiled using the C++ compiler, the implementations are emitted as mangled
symbols.

Version-Release number of selected component (if applicable):
389-ds-base-1.3.2.11-2.fc21.x86_64

How reproducible:
Always

Steps to Reproduce:
1. Run setup-ds.pl

Actual results:
[17/Feb/2014:13:38:04 -0500] - Netscape Portable Runtime error -5977:
/usr/lib64/dirsrv/libns-dshttpd.so.0: undefined symbol: aclDNSLookup
[17/Feb/2014:13:38:04 -0500] - Could not open library
"/usr/lib64/dirsrv/plugins/libacl-plugin.so" for plugin ACL Plugin
[17/Feb/2014:13:38:04 -0500] - Unable to load plugin "cn=ACL
Plugin,cn=plugins,cn=config"
[17/Feb/2014:14:16:22 -0500] - Netscape Portable Runtime error -5977:
/usr/lib64/dirsrv/libns-dshttpd.so.0: undefined symbol: INTereport
[17/Feb/2014:14:16:22 -0500] - Could not open library
"/usr/lib64/dirsrv/plugins/libacl-plugin.so" for plugin ACL Plugin
[17/Feb/2014:14:16:23 -0500] - Unable to load plugin "cn=ACL
Plugin,cn=plugins,cn=config"

Description of problem by nalin@redhat.com:
Various functions in the directory server are declared with extern "C"
linkage, causing the compiler to emit references to an unmangled symbol
name, but because their definitions don't match the declarations, and
the definitions are compiled using the C++ compiler, the implementations
are emitted as mangled symbols.

Fix description: Adjusted the function declaration to the implementation.

Additionally, removed unused macros for ACL_ReadDbMapFile, which had been
removed.

git patch file (master, take2) -- Using ld option "-z defs", cleaned all the undefined references.
0001-Ticket-47700-Unresolved-external-symbol-references-b.2.patch

Reviewed by Rich (Thank you!!)

Pushed to master:
b377d7d..16386dd master -> master
commit 16386dd

Pushed to 389-ds-base-1.3.2:
86515d1..e9dd44b 389-ds-base-1.3.2 -> 389-ds-base-1.3.2
commit e9dd44b

Fix compiler warnings:

commit 9698a97

a84dab5..9698a97 master -> master

97fa6d2..ad4f230 389-ds-base-1.3.2 -> 389-ds-base-1.3.2

b92eb1a..c0c8da7 389-ds-base-1.3.1 -> 389-ds-base-1.3.1

With the "Fix compiler warnings" patch, some build fails.
{{{
lib/base/pool.cpp: In function 'block_t _create_block(int)':
lib/base/pool.cpp:181:84: error: format not a string literal and no format arguments [-Werror=format-security]
ereport(LOG_CATASTROPHE, (char
)XP_GetAdminStr(DBT_poolCreateBlockOutOfMemory_));
^
[...]
^
cc1plus: some warnings being treated as errors
}}}

I'm reverting the push...

Metadata Update from @mreynolds:
- Issue assigned to nhosoi
- Issue set to the milestone: 1.3.2.12

7 years ago

389-ds-base is moving from Pagure to Github. This means that new issues and pull requests
will be accepted only in 389-ds-base's github repository.

This issue has been cloned to Github and is available here:
- https://github.com/389ds/389-ds-base/issues/1036

If you want to receive further updates on the issue, please navigate to the github issue
and click on subscribe button.

Thank you for understanding. We apologize for all inconvenience.

Metadata Update from @spichugi:
- Issue close_status updated to: wontfix (was: Fixed)

3 years ago

Login to comment on this ticket.

Metadata