New submission from Antoine Brodin.FreeBSD:
Hi,
On FreeBSD -current, clang 3.4 is now the default compiler.
Clang 3.4 rejects "-R/path/to/lib" flag (previously in version 3.3 it just
ignored it).
This leads to some errors with some python extensions:
cc -shared -O2 -pipe -fno-strict-aliasing
build/temp.freebsd-11.0-CURRENT-amd64-2.7/_sqlite/cache.o
build/temp.freebsd-11.0-CURRENT-amd64-2.7/_sqlite/connection.o
build/temp.freebsd-11.0-CURRENT-amd64-2.7/_sqlite/cursor.o
build/temp.freebsd-11.0-CURRENT-amd64-2.7/_sqlite/microprotocols.o
build/temp.freebsd-11.0-CURRENT-amd64-2.7/_sqlite/module.o
build/temp.freebsd-11.0-CURRENT-amd64-2.7/_sqlite/prepare_protocol.o
build/temp.freebsd-11.0-CURRENT-amd64-2.7/_sqlite/row.o
build/temp.freebsd-11.0-CURRENT-amd64-2.7/_sqlite/statement.o
build/temp.freebsd-11.0-CURRENT-amd64-2.7/_sqlite/util.o -L/usr/local/lib
-R/usr/local/lib -lsqlite3 -o
build/lib.freebsd-11.0-CURRENT-amd64-2.7/_sqlite3.so
cc: error: unknown argument: '-R/usr/local/lib'
error: command 'cc' failed with exit status 1
cc -shared -O2 -pipe -DLDAP_DEPRECATED -fno-strict-aliasing
build/temp.freebsd-11.0-CURRENT-amd64-2.7/Modules/LDAPObject.o
build/temp.freebsd-11.0-CURRENT-amd64-2.7/Modules/ldapcontrol.o
build/temp.freebsd-11.0-CURRENT-amd64-2.7/Modules/common.o
build/temp.freebsd-11.0-CURRENT-amd64-2.7/Modules/constants.o
build/temp.freebsd-11.0-CURRENT-amd64-2.7/Modules/errors.o
build/temp.freebsd-11.0-CURRENT-amd64-2.7/Modules/functions.o
build/temp.freebsd-11.0-CURRENT-amd64-2.7/Modules/schema.o
build/temp.freebsd-11.0-CURRENT-amd64-2.7/Modules/ldapmodule.o
build/temp.freebsd-11.0-CURRENT-amd64-2.7/Modules/message.o
build/temp.freebsd-11.0-CURRENT-amd64-2.7/Modules/version.o
build/temp.freebsd-11.0-CURRENT-amd64-2.7/Modules/options.o
build/temp.freebsd-11.0-CURRENT-amd64-2.7/Modules/berval.o -L/usr/local/lib
-L/usr/lib -R/usr/local/lib -R/usr/lib -lldap_r -o
build/lib.freebsd-11.0-CURRENT-amd64-2.7/_ldap.so
cc: error: unknown argument: '-R/usr/local/lib'
cc: error: unknown argument: '-R/usr/lib'
error: command 'cc' failed with exit status 1
cc -shared -O2 -pipe -fno-strict-aliasing
build/temp.freebsd-11.0-CURRENT-amd64-2.7/Modules/_bsddb.o -L/usr/local/lib
-R/usr/local/lib -o build/lib.freebsd-11.0-CURRENT-amd64-2.7/bsddb3/_pybsddb.so
-ldb-4.3
cc: error: unknown argument: '-R/usr/local/lib'
error: command 'cc' failed with exit status 1
I found the patch below to help, it is for function runtime_library_dir_option
in Lib/distutils/unixccompiler.py
-Wl,-rpath works for both gcc and clang on freebsd
--- ./Lib/distutils/unixccompiler.py.orig
+++ ./Lib/distutils/unixccompiler.py
@@ -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]
--
components: Distutils
messages: 212176
nosy: Antoine.Brodin.FreeBSD, koobs
priority: normal
severity: normal
status: open
title: Some python extensions can't be compiled with clang 3.4
versions: Python 2.7
___
Python tracker
<http://bugs.python.org/issue20767>
___
___
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com