You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@apr.apache.org by "William A. Rowe, Jr." <wr...@rowe-clan.net> on 2001/12/29 18:36:26 UTC

reg* symbols in OS 10.1 libm???

After removing a duplicate ap_coredump_dir symbol - this is the error
I'm left with on OSX building threaded [no such error on worker !?!]

Thoughts?

Bill

/bin/sh /clean/httpd-2.0/srclib/apr/libtool --silent --mode=compile cc  
-g -O2    -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -traditional-cpp 
-DAP_HAVE_DESIGNATED_INITIALIZER   -I. -I/clean/httpd-2.0/os/unix 
-I/clean/httpd-2.0/server/mpm/worker -I/clean/httpd-2.0/modules/http 
-I/clean/httpd-2.0/modules/proxy -I/clean/httpd-2.0/include 
-I/clean/httpd-2.0/srclib/apr/include -I/clean/httpd-2.0/srclib/apr-
util/include -I/clean/httpd-2.0/modules/dav/main  -c modules.c && touch 
modules.lo
/bin/sh /clean/httpd-2.0/srclib/apr/libtool --silent --mode=link cc  -g 
-O2    -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -traditional-cpp 
-DAP_HAVE_DESIGNATED_INITIALIZER   -I. -I/clean/httpd-2.0/os/unix 
-I/clean/httpd-2.0/server/mpm/worker -I/clean/httpd-2.0/modules/http 
-I/clean/httpd-2.0/modules/proxy -I/clean/httpd-2.0/include 
-I/clean/httpd-2.0/srclib/apr/include -I/clean/httpd-2.0/srclib/apr-
util/include -I/clean/httpd-2.0/modules/dav/main -export-dynamic    -o 
httpd  modules.lo   modules/aaa/mod_access.la modules/aaa/mod_auth.la 
modules/filters/mod_include.la modules/loggers/mod_log_config.la 
modules/metadata/mod_env.la modules/metadata/mod_setenvif.la 
modules/http/mod_http.la modules/http/mod_mime.la 
modules/generators/mod_status.la modules/generators/mod_autoindex.la 
modules/generators/mod_asis.la modules/generators/mod_cgid.la 
modules/mappers/mod_negotiation.la modules/mappers/mod_dir.la 
modules/mappers/mod_imap.la modules/mappers/mod_actions.la 
modules/mappers/mod_userdir.la modules/mappers/mod_alias.la 
modules/mappers/mod_so.la server/mpm/worker/libworker.la 
server/libmain.la os/unix/libos.la 
/clean/httpd-2.0/srclib/pcre/libpcre.la /clean/httpd-2.0/srclib/apr-
util/libaprutil.la /clean/httpd-2.0/srclib/apr/libapr.la -lm 
/clean/httpd-2.0/srclib/apr-util/xml/expat/lib/libexpat.la
usage: basename string [suffix]
usage: basename string [suffix]
usage: basename string [suffix]
usage: basename string [suffix]
usage: basename string [suffix]
/usr/bin/ld: multiple definitions of symbol _ap_coredump_dir
server/mpm/worker/.libs/libworker.al(worker.lo) definition of 
_ap_coredump_dir in section (__DATA,__common)
server/.libs/libmain.al(mpm_common.lo) definition of _ap_coredump_dir in 
section (__DATA,__common)
/usr/bin/ld: warning multiple definitions of symbol _regcomp
/clean/httpd-2.0/srclib/pcre/.libs/libpcre.al(pcreposix.lo) definition 
of _regcomp in section (__TEXT,__text)
/usr/lib/libm.dylib(regcomp.o) definition of _regcomp
/usr/bin/ld: warning multiple definitions of symbol _regexec
/clean/httpd-2.0/srclib/pcre/.libs/libpcre.al(pcreposix.lo) definition 
of _regexec in section (__TEXT,__text)
/usr/lib/libm.dylib(regexec.o) definition of _regexec
/usr/bin/ld: warning multiple definitions of symbol _regfree
/clean/httpd-2.0/srclib/pcre/.libs/libpcre.al(pcreposix.lo) definition 
of _regfree in section (__TEXT,__text)
/usr/lib/libm.dylib(regfree.o) definition of _regfree
make[1]: *** [httpd] Error 1
make: *** [all-recursive] Error 1




Re: reg* symbols in OS 10.1 libm???

Posted by Sander Temme <sc...@covalent.net>.
> Thanks though!  All seems well again.  Of course, I had to modify the
> installed build script for the -flat-namespace cruft, but other than that,
> no problems {right}.

The -flat_namespace flag is best set inside ltconfig before the libtoolize
step. However, for the last two dev tools revisions Apple has not done this,
so to use the supplied libtool installation requires a patch to ltconfig:

--- /usr/share/libtool/ltconfig.bak     Tue Oct  2 17:53:33 2001
+++ /usr/share/libtool/ltconfig Wed Dec 12 22:30:16 2001
@@ -1372,7 +1372,7 @@
     ;;
 
   darwin* | rhapsody*)
-    allow_undefined_flag='-undefined warning'
+    allow_undefined_flag='-undefined warning -flat_namespace'
     archive_cmds='$CC $(if test .$module = .yes; then echo -bundle; else
echo -dynamiclib; fi) $allow_undefined_flag -o $lib $libobjs $deplibs
$linkopts'
     #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols $lib'
     hardcode_direct=yes

I know Fred has filed this as a bug but apparently it hasn't drifted to the
surface yet at Apple.

S.

-- 
Covalent Technologies                             sctemme@covalent.net
Engineering group                                Voice: (415) 536 5214
645 Howard St.                                     Fax: (415) 536 5210
San Francisco CA 94105

   PGP Fingerprint: 1E74 4E58 DFAC 2CF5 6A03  5531 AFB1 96AF B584 0AB1

=======================================================
This email message is for the sole use of the intended recipient(s) and may
contain confidential and privileged information. Any unauthorized review,
use, disclosure or distribution is prohibited.  If you are not the intended
recipient, please contact the sender by reply email and destroy all copies
of the original message
=======================================================


Re: reg* symbols in OS 10.1 libm???

Posted by Sander Temme <sc...@covalent.net>.
> Thanks though!  All seems well again.  Of course, I had to modify the
> installed build script for the -flat-namespace cruft, but other than that,
> no problems {right}.

The -flat_namespace flag is best set inside ltconfig before the libtoolize
step. However, for the last two dev tools revisions Apple has not done this,
so to use the supplied libtool installation requires a patch to ltconfig:

--- /usr/share/libtool/ltconfig.bak     Tue Oct  2 17:53:33 2001
+++ /usr/share/libtool/ltconfig Wed Dec 12 22:30:16 2001
@@ -1372,7 +1372,7 @@
     ;;
 
   darwin* | rhapsody*)
-    allow_undefined_flag='-undefined warning'
+    allow_undefined_flag='-undefined warning -flat_namespace'
     archive_cmds='$CC $(if test .$module = .yes; then echo -bundle; else
echo -dynamiclib; fi) $allow_undefined_flag -o $lib $libobjs $deplibs
$linkopts'
     #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols $lib'
     hardcode_direct=yes

I know Fred has filed this as a bug but apparently it hasn't drifted to the
surface yet at Apple.

S.

-- 
Covalent Technologies                             sctemme@covalent.net
Engineering group                                Voice: (415) 536 5214
645 Howard St.                                     Fax: (415) 536 5210
San Francisco CA 94105

   PGP Fingerprint: 1E74 4E58 DFAC 2CF5 6A03  5531 AFB1 96AF B584 0AB1

=======================================================
This email message is for the sole use of the intended recipient(s) and may
contain confidential and privileged information. Any unauthorized review,
use, disclosure or distribution is prohibited.  If you are not the intended
recipient, please contact the sender by reply email and destroy all copies
of the original message
=======================================================


Re: reg* symbols in OS 10.1 libm???

Posted by "William A. Rowe, Jr." <wr...@covalent.net>.
From: "Sander Temme" <sc...@covalent.net>
Sent: Saturday, December 29, 2001 12:22 PM


> > After removing a duplicate ap_coredump_dir symbol - this is the error
> > I'm left with on OSX building threaded [no such error on worker !?!]
> 
> You're breaking on those? I remember just seeing them as warnings. 

It appears you are right, and I didn't purge enough files (nor did the
make properly rebuild a few targets automatically) after I fixed the
problem with the duplicate ap_coredump_dir symbol.

Thanks though!  All seems well again.  Of course, I had to modify the
installed build script for the -flat-namespace cruft, but other than that,
no problems {right}.

Bill


Re: reg* symbols in OS 10.1 libm???

Posted by "William A. Rowe, Jr." <wr...@covalent.net>.
From: "Sander Temme" <sc...@covalent.net>
Sent: Saturday, December 29, 2001 12:22 PM


> > After removing a duplicate ap_coredump_dir symbol - this is the error
> > I'm left with on OSX building threaded [no such error on worker !?!]
> 
> You're breaking on those? I remember just seeing them as warnings. 

It appears you are right, and I didn't purge enough files (nor did the
make properly rebuild a few targets automatically) after I fixed the
problem with the duplicate ap_coredump_dir symbol.

Thanks though!  All seems well again.  Of course, I had to modify the
installed build script for the -flat-namespace cruft, but other than that,
no problems {right}.

Bill


Re: reg* symbols in OS 10.1 libm???

Posted by Sander Temme <sc...@covalent.net>.
> After removing a duplicate ap_coredump_dir symbol - this is the error
> I'm left with on OSX building threaded [no such error on worker !?!]

You're breaking on those? I remember just seeing them as warnings. They are
symbol conflicts between the regular expression stuff in the Math library
(see regex(3)) and PCRE. Under normal circumstances, PCRE wins and we end up
actually using our own symbols. As long as there is no namespace protection
or two-level linking (which we shied away from earlier), we're stuck with
the existence of multiple symbols. From the man page of ld(1):

       When  creating  a  output file with the static link editor
       that links against dynamic libraries,  the  references  to
       symbols  in those libraries can be recorded at static link
       time to bind to a specific library  definition  (two-level
       namespace)  or  left  to be bound at execution time to the
       first library in the search order  of  the  program  (flat
       namespace).  A program, its dynamic libraries and its bun-
       dles may  each  be  either  two-level  or  flat  namespace
       images.  The dynamic linker will bind each image according
       to how it was built.

As far as I have taken the time to figure this out (AFAIHTTTTFTO?), the PCRE
library is linked statically into httpd, so its symbols don't have to be
satisfied at runtime. Feel free to shoot me down on this though.

S.

-- 
Covalent Technologies                             sctemme@covalent.net
Engineering group                                Voice: (415) 536 5214
645 Howard St.                                     Fax: (415) 536 5210
San Francisco CA 94105

   PGP Fingerprint: 1E74 4E58 DFAC 2CF5 6A03  5531 AFB1 96AF B584 0AB1

=======================================================
This email message is for the sole use of the intended recipient(s) and may
contain confidential and privileged information. Any unauthorized review,
use, disclosure or distribution is prohibited.  If you are not the intended
recipient, please contact the sender by reply email and destroy all copies
of the original message
=======================================================


Re: reg* symbols in OS 10.1 libm???

Posted by Sander Temme <sc...@covalent.net>.
> After removing a duplicate ap_coredump_dir symbol - this is the error
> I'm left with on OSX building threaded [no such error on worker !?!]

You're breaking on those? I remember just seeing them as warnings. They are
symbol conflicts between the regular expression stuff in the Math library
(see regex(3)) and PCRE. Under normal circumstances, PCRE wins and we end up
actually using our own symbols. As long as there is no namespace protection
or two-level linking (which we shied away from earlier), we're stuck with
the existence of multiple symbols. From the man page of ld(1):

       When  creating  a  output file with the static link editor
       that links against dynamic libraries,  the  references  to
       symbols  in those libraries can be recorded at static link
       time to bind to a specific library  definition  (two-level
       namespace)  or  left  to be bound at execution time to the
       first library in the search order  of  the  program  (flat
       namespace).  A program, its dynamic libraries and its bun-
       dles may  each  be  either  two-level  or  flat  namespace
       images.  The dynamic linker will bind each image according
       to how it was built.

As far as I have taken the time to figure this out (AFAIHTTTTFTO?), the PCRE
library is linked statically into httpd, so its symbols don't have to be
satisfied at runtime. Feel free to shoot me down on this though.

S.

-- 
Covalent Technologies                             sctemme@covalent.net
Engineering group                                Voice: (415) 536 5214
645 Howard St.                                     Fax: (415) 536 5210
San Francisco CA 94105

   PGP Fingerprint: 1E74 4E58 DFAC 2CF5 6A03  5531 AFB1 96AF B584 0AB1

=======================================================
This email message is for the sole use of the intended recipient(s) and may
contain confidential and privileged information. Any unauthorized review,
use, disclosure or distribution is prohibited.  If you are not the intended
recipient, please contact the sender by reply email and destroy all copies
of the original message
=======================================================