Opened 6 years ago

Closed 6 years ago

#56666 closed defect (fixed)

py36-lxml @4.2.1 does not build on PPC Mac OS X 10.4.11, Tiger, because: ld: file not found: dynamic_lookup

Reported by: ballapete (Peter "Pete" Dyballa) Owned by: petrrr
Priority: Normal Milestone:
Component: ports Version: 2.5.2
Keywords: tiger leopard snowleopard lion haspatch Cc: Schamschula (Marius Schamschula)
Port: py-lxml

Description

That's the end:

copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt -> build/lib.macosx-10.4-ppc-3.6/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
running build_ext
building 'lxml.etree' extension
creating build/temp.macosx-10.4-ppc-3.6
creating build/temp.macosx-10.4-ppc-3.6/src
creating build/temp.macosx-10.4-ppc-3.6/src/lxml
/opt/local/bin/gcc-apple-4.2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -arch ppc -DCYTHON_CLINE_IN_TRACEBACK=0 -I/opt/local/include -I/opt/local/include/libxml2 -Isrc -Isrc/lxml/includes -I/opt/local/Library/Frameworks/Python.framework/Versions/3.6/include/python3.6m -c src/lxml/etree.c -o build/temp.macosx-10.4-ppc-3.6/src/lxml/etree.o -w -flat_namespace
/opt/local/bin/gcc-apple-4.2 -bundle -undefined dynamic_lookup -L/opt/local/lib -Wl,-headerpad_max_install_names -arch ppc -arch ppc build/temp.macosx-10.4-ppc-3.6/src/lxml/etree.o -L/opt/local/lib -lxslt -lexslt -lxml2 -lz -lm -o build/lib.macosx-10.4-ppc-3.6/lxml/etree.cpython-36m-darwin.so -isysroot 
ld: file not found: dynamic_lookup
collect2: ld returned 1 exit status
error: command '/opt/local/bin/gcc-apple-4.2' failed with exit status 1
Command failed:  cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_lil.fr.rsync.macports.org_release_tarballs_ports_python_py-lxml/py36-lxml/work/lxml-4.2.1" && /opt/local/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6 setup.py --no-user-cfg build 
Exit code: 1

Presumingly something else than the installed

  ld64 @3_0+ld64_97 (active)
  ld64-97 @97.17_8 (active)

is used and the build fails.

Attachments (2)

main.log (15.8 KB) - added by ballapete (Peter "Pete" Dyballa) 6 years ago.
Main.log from PPC Tiger
patch-setupinfo-remove-xcrun-call.diff (444 bytes) - added by kencu (Ken) 6 years ago.
patch out call to xcrun

Download all attachments as: .zip

Change History (12)

Changed 6 years ago by ballapete (Peter "Pete" Dyballa)

Attachment: main.log added

Main.log from PPC Tiger

comment:1 Changed 6 years ago by kencu (Ken)

Cc: petr@… removed
Owner: set to petr@…
Port: py-lxml added; py36-lxml removed
Status: newassigned

comment:2 Changed 6 years ago by jmroot (Joshua Root)

Owner: changed from petr@… to petrrr

comment:3 Changed 6 years ago by kencu (Ken)

data point: py27-lxml installs on 10.4 Tiger Intel without issues.

Sorry for the noise, that was the previous version I built. With @4.2.1, I get the same error on TIger i386.

Last edited 6 years ago by kencu (Ken) (previous) (diff)

comment:4 Changed 6 years ago by Schamschula (Marius Schamschula)

Cc: Schamschula added

comment:5 Changed 6 years ago by Schamschula (Marius Schamschula)

Same issue with Leopard

comment:6 Changed 6 years ago by kencu (Ken)

The only difference I see in the build lines between the successful build of the last version and the failed build of the present version is the -isysroot on the end of the failed build line.

And indeed that calls a new function in setupinfo.py called get_xcode_isysroot that in turn calls xcrun and this command doesn't work on TIger. Probably have to patch that out for older systems where xcrun --show-sdk-path doesn't function.

Last edited 6 years ago by kencu (Ken) (previous) (diff)

Changed 6 years ago by kencu (Ken)

patch out call to xcrun

comment:7 Changed 6 years ago by kencu (Ken)

this is a possible patch. Not elegant, and can't be upstreamed. But it does work to fix the build. Not yet sure which systems don't support the xcrun --show-sdk-path command, tho.

comment:8 in reply to:  7 Changed 6 years ago by ryandesign (Ryan Carsten Schmidt)

Keywords: leopard snowleopard lion haspatch added

Replying to kencu:

this is a possible patch. Not elegant, and can't be upstreamed. But it does work to fix the build.

The patch looks reasonable. We probably never want the build system to get_xcode_isysroot. If an -isysroot flag is needed, MacPorts should already be supplying it to the build system as part of CFLAGS, CXXFLAGS, LDFLAGS.

Not yet sure which systems don't support the xcrun --show-sdk-path command, tho.

xcrun --show-sdk-path works for me on OS X Mountain Lion 10.8 with Xcode 5.1.1, and does not work on Mac OS X Lion 10.7 with Xcode 4.6.3.

comment:9 Changed 6 years ago by kencu (Ken)

OK. Will try a patch applied universally then, and see what happens...PR up

Last edited 6 years ago by kencu (Ken) (previous) (diff)

comment:10 Changed 6 years ago by kencu (Ken)

Resolution: fixed
Status: assignedclosed

In eaf647f18e394b709645af9f31651fbe308586f4/macports-ports (master):

py-lxml: patch out -isysroot addition

  1. calls xcrun, which is 10.8+ only
  2. we want to pass in -isysroot if needed

closes: #56666

Note: See TracTickets for help on using tickets.