Python and clang 3.4

Antoine Brodin antoine at FreeBSD.org
Wed Feb 19 17:45:54 UTC 2014


Hi there,

Clang 3.4 was imported in head 3 days ago.
A few python extensions are broken because clang now refuses flags it
doesn't know.
For instance -R is not recognized,  which breaks py-sqlite3,  py-ldap2
and a few others.

Some failure logs are available at
http://package21.nyi.freebsd.org/bulk/head-default-baseline/2014-02-18_15h22m08s/logs/errors/py27-sqlite3-2.7.6_3.log
and http://package21.nyi.freebsd.org/bulk/head-default-baseline/2014-02-18_15h22m08s/logs/errors/py27-ldap2-2.4.13.log

Below is a possible fix for python27:

Index: lang/python27/Makefile
===================================================================
--- lang/python27/Makefile      (revision 345118)
+++ lang/python27/Makefile      (working copy)
@@ -3,7 +3,7 @@

 PORTNAME=      python27
 PORTVERSION=   2.7.6
-PORTREVISION=  2
+PORTREVISION=  3
 CATEGORIES=    lang python ipv6
 MASTER_SITES=  PYTHON
 MASTER_SITE_SUBDIR=    ${PYTHON_MASTER_SITE_SUBDIR}
Index: lang/python27/files/patch-Lib__distutils__unixccompiler.py
===================================================================
--- lang/python27/files/patch-Lib__distutils__unixccompiler.py  (revision 0)
+++ lang/python27/files/patch-Lib__distutils__unixccompiler.py  (working copy)
@@ -0,0 +1,11 @@
+--- ./Lib/distutils/unixccompiler.py.orig      2013-11-10
07:36:40.000000000 +0000
++++ ./Lib/distutils/unixccompiler.py   2014-02-19 15:41:48.000000000 +0000
+@@ -228,6 +228,8 @@
+         if sys.platform[:6] == "darwin":
+             # MacOSX's linker doesn't understand the -R flag at all
+             return "-L" + dir
++        elif sys.platform[:7] == "freebsd":
++            return "-Wl,-rpath=" + dir
+         elif sys.platform[:5] == "hp-ux":
+             if self._is_gcc(compiler):
+                 return ["-Wl,+s", "-L" + dir]


Cheers,

Antoine


More information about the freebsd-python mailing list