MacPorts v1.4.0 release announcement

Vincent Lefevre vincent-opdarw at vinc17.org
Fri Apr 6 08:03:42 PDT 2007


On 2007-04-06 16:37:09 +0200, Vincent Lefevre wrote:
> On 2007-04-06 09:31:56 -0400, Daniel J. Luke wrote:
> >  On Apr 5, 2007, at 8:12 PM, Vincent Lefevre wrote:
> > > On 2007-04-05 16:49:38 -0400, Daniel J. Luke wrote:
> > >>  The problem IIRC has to do with mismatched headers and library.
> > >
> > > Yes, probably because the Makefile is incorrect.
> > 
> >  It is? Do you have a patch to fix it?
> 
> The use of -L/usr/lib is incorrect as it is not consistent with
> the include search path. For some reason, CURL_CONFIG seems to be
> set to /usr/bin/curl-config, though "which curl-config" outputs
> /opt/local/bin/curl-config (that's a bug since it can lead to
> inconsistent paths), and there's a bug in /usr/bin/curl-config
> too:
> 
> prunille:~> /usr/bin/curl-config --libs
> -L/usr/lib -lcurl -lssl -lcrypto -lz
> ^^^^^^^^^^
> This shouldn't be there.

Well, I think this is a more general problem, and pkg-config does
the right thing by providing --libs-only-l and --libs-only-other.

The rule is:

  * If you are linking with curl only, using the -L flags may be
    safe.

  * If you are linking with other libraries (e.g. readline), then
    the -L flags must not be used, because they may conflict with
    each other. The cleanest way to avoid such a conflict is to
    have a global setting, e.g. via LIBRARY_PATH and ditto for
    the include search path. So, the -L flags should be filtered
    out with sed 's/-L[^ ]*//g', and with --cflags, the -I flags
    should be filtered out with sed 's/-I[^ ]*//g'.

The attach patch fixes the problem here.

-- 
Vincent Lefèvre <vincent at vinc17.org> - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)
-------------- next part --------------
--- aclocal.m4.bak	2007-03-27 06:24:51.000000000 +0200
+++ aclocal.m4	2007-04-06 16:56:43.000000000 +0200
@@ -701,10 +701,10 @@
 		AC_MSG_ERROR([cannot find curl-config. Is libcurl installed?])
 	fi
 
-	CFLAGS_LIBCURL=$($CURL_CONFIG --cflags)
+	CFLAGS_LIBCURL=$($CURL_CONFIG --cflags | [sed 's/-I[^ ]*//g'])
 	# Due to a bug in dist, --arch flags are improperly supplied by curl-config.
 	# Get rid of them.
-	LDFLAGS_LIBCURL=$($CURL_CONFIG --libs | [sed 's/-arch [A-Za-z0-9]* //g'])
+	LDFLAGS_LIBCURL=$($CURL_CONFIG --libs | [sed 's/-arch [A-Za-z0-9]* //g; s/-L[^ ]*//g'])
 
 	AC_SUBST(CFLAGS_LIBCURL)
 	AC_SUBST(LDFLAGS_LIBCURL)


More information about the macports-dev mailing list