When building xrootd v5.4.0 on OSX 11.6.3 (Big Sur) with pip 21.3.1 and setuptools 60.5.0 installed, compiling xrootd's Python bindings fails with various errors related to code being compiled as C++98 instead of C++0x. It works fine with pip 21.3 and setuptools 58.2.0.

A full log of the build is here, with the build errors starting at line 4000. The problem is that bindings/python/src/PyXRootDCopyProcess.cc is compiled with the following command, which is missing the --std=c++0x option:

clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk -fPIC -O2 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -arch x86_64 -I/Users/alibuild/Documents/sw/BUILD/e4239a59938fab56b67ecaa49f92c9eb05b7601d/XRootD/src -I/Users/alibuild/Documents/sw/BUILD/e4239a59938fab56b67ecaa49f92c9eb05b7601d/XRootD/build/src [log in to unmask] -c /Users/alibuild/Documents/sw/BUILD/e4239a59938fab56b67ecaa49f92c9eb05b7601d/XRootD/bindings/python/src/PyXRootDCopyProcess.cc -o build/temp.macosx-11-x86_64-3.9/Users/alibuild/Documents/sw/BUILD/e4239a59938fab56b67ecaa49f92c9eb05b7601d/XRootD/bindings/python/src/PyXRootDCopyProcess.o -g

The following patch fixes this for me, but there may well be a better way of doing this:

diff --git a/bindings/python/setup.py.in b/bindings/python/setup.py.in
index cea13f3a9..05c139072 100644
--- a/bindings/python/setup.py.in
+++ b/bindings/python/setup.py.in
@@ -8,15 +8,15 @@ import subprocess
 # Remove the "-Wstrict-prototypes" compiler option, which isn't valid for C++.
 cfg_vars = sysconfig.get_config_vars()
 opt = cfg_vars["OPT"]
-cfg_vars["OPT"] = " ".join( flag for flag in opt.split() if flag not in ['-Wstrict-prototypes' ${CLANG_PROHIBITED} ] ) + " --std=c++0x"
+cfg_vars["OPT"] = " ".join( flag for flag in opt.split() if flag not in ['-Wstrict-prototypes' ${CLANG_PROHIBITED} ] )
 
 cflags = cfg_vars["CFLAGS"]
-cfg_vars["CFLAGS"] = " ".join( flag for flag in cflags.split() if flag not in ['-Wstrict-prototypes' ${CLANG_PROHIBITED} ] ) + " --std=c++0x"
+cfg_vars["CFLAGS"] = " ".join( flag for flag in cflags.split() if flag not in ['-Wstrict-prototypes' ${CLANG_PROHIBITED} ] )
 
 # pypy doesn't define PY_CFLAGS so skip it if it's missing
 if "PY_CFLAGS" in cfg_vars:
   py_cflags = cfg_vars["PY_CFLAGS"]
-  cfg_vars["PY_CFLAGS"] = " ".join( flag for flag in py_cflags.split() if flag not in ['-Wstrict-prototypes' ${CLANG_PROHIBITED} ] ) + " --std=c++0x"
+  cfg_vars["PY_CFLAGS"] = " ".join( flag for flag in py_cflags.split() if flag not in ['-Wstrict-prototypes' ${CLANG_PROHIBITED} ] )
 
 ccl=cfg_vars["CC"].split()
 ccl[0]="${CMAKE_C_COMPILER}"
@@ -81,7 +81,7 @@ setup( name             = 'xrootd',
                sources   = sources,
                depends   = depends,
                libraries = ['XrdCl', 'XrdUtils', 'dl'],
-               extra_compile_args = ['-g'],
+               extra_compile_args = ['--std=c++0x', '-g'],
                include_dirs = [xrdsrcincdir, xrdbinincdir],
                library_dirs = [xrdlibdir, xrdcllibdir]
                )

I also tried building #1586 instead, but I got the same errors, just during the pip install step later in the build.


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
You are receiving this because you are subscribed to this thread.Message ID: <xrootd/xrootd/issues/1607@github.com>

[ { "@context": "http://schema.org", "@type": "EmailMessage", "potentialAction": { "@type": "ViewAction", "target": "https://github.com/xrootd/xrootd/issues/1607", "url": "https://github.com/xrootd/xrootd/issues/1607", "name": "View Issue" }, "description": "View this Issue on GitHub", "publisher": { "@type": "Organization", "name": "GitHub", "url": "https://github.com" } } ]

Use REPLY-ALL to reply to list

To unsubscribe from the XROOTD-DEV list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1