Opened 3 years ago

Closed 3 years ago

#56083 closed defect (fixed)

leptonica @1.75.3: FTBFS on 10.9- - fstatat

Reported by: Ionic (Mihai Moldovan) Owned by: stromnov (Andrew Stromnov)
Priority: Normal Milestone:
Component: ports Version:
Keywords: haspatch Cc:
Port: leptonica


/bin/sh ../libtool  --tag=CC   --mode=link ccache /usr/bin/clang  -pipe -Os -arch x86_64 -no-undefined -version-info 5:2:0 -L/opt/local/lib -Wl,-headerpad_max_install_names -arch x86_64 -o -rpath /opt/local/lib adaptmap.lo affine.lo affinecompose.lo arrayaccess.lo bardecode.lo baseline.lo bbuffer.lo bilateral.lo bilinear.lo binarize.lo binexpand.lo binreduce.lo blend.lo bmf.lo bmpio.lo bmpiostub.lo bootnumgen1.lo bootnumgen2.lo bootnumgen3.lo boxbasic.lo boxfunc1.lo boxfunc2.lo boxfunc3.lo boxfunc4.lo bytearray.lo ccbord.lo ccthin.lo classapp.lo colorcontent.lo coloring.lo colormap.lo colormorph.lo colorquant1.lo colorquant2.lo colorseg.lo colorspace.lo compare.lo conncomp.lo convertfiles.lo convolve.lo correlscore.lo dewarp1.lo dewarp2.lo dewarp3.lo dewarp4.lo dnabasic.lo dnafunc1.lo dnahash.lo dwacomb.2.lo dwacomblow.2.lo edge.lo encoding.lo enhance.lo fhmtauto.lo fhmtgen.1.lo fhmtgenlow.1.lo finditalic.lo flipdetect.lo fliphmtgen.lo fmorphauto.lo fmorphgen.1.lo fmorphgenlow.1.lo fpix1.lo fpix2.lo gifio.lo gifiostub.lo gplot.lo graphics.lo graymorph.lo grayquant.lo heap.lo jbclass.lo jp2kheader.lo jp2kheaderstub.lo jp2kio.lo jp2kiostub.lo jpegio.lo jpegiostub.lo kernel.lo leptwin.lo libversions.lo list.lo map.lo maze.lo morph.lo morphapp.lo morphdwa.lo morphseq.lo numabasic.lo numafunc1.lo numafunc2.lo pageseg.lo paintcmap.lo parseprotos.lo partition.lo pdfio1.lo pdfio1stub.lo pdfio2.lo pdfio2stub.lo pix1.lo pix2.lo pix3.lo pix4.lo pix5.lo pixabasic.lo pixacc.lo pixafunc1.lo pixafunc2.lo pixalloc.lo pixarith.lo pixcomp.lo pixconv.lo pixlabel.lo pixtiling.lo pngio.lo pngiostub.lo pnmio.lo pnmiostub.lo projective.lo psio1.lo psio1stub.lo psio2.lo psio2stub.lo ptabasic.lo ptafunc1.lo ptafunc2.lo ptra.lo quadtree.lo queue.lo rank.lo rbtree.lo readbarcode.lo readfile.lo recogbasic.lo recogdid.lo recogident.lo recogtrain.lo regutils.lo rop.lo roplow.lo rotate.lo rotateam.lo rotateorth.lo rotateshear.lo runlength.lo sarray1.lo sarray2.lo scale1.lo scale2.lo seedfill.lo sel1.lo sel2.lo selgen.lo shear.lo skew.lo spixio.lo stack.lo stringcode.lo strokes.lo sudoku.lo textops.lo tiffio.lo tiffiostub.lo utils1.lo utils2.lo warper.lo watershed.lo webpio.lo webpiostub.lo writefile.lo zlibmem.lo zlibmemstub.lo  -L/opt/local/lib -lz -L/opt/local/lib -lpng16 -L/opt/local/lib -ljpeg  -L/opt/local/lib -ltiff -L/opt/local/lib -lwebp -L/opt/local/lib -lopenjp2
libtool: link: ccache /usr/bin/clang -dynamiclib  -o .libs/liblept.5.dylib  .libs/adaptmap.o .libs/affine.o .libs/affinecompose.o .libs/arrayaccess.o .libs/bardecode.o .libs/baseline.o .libs/bbuffer.o .libs/bilateral.o .libs/bilinear.o .libs/binarize.o .libs/binexpand.o .libs/binreduce.o .libs/blend.o .libs/bmf.o .libs/bmpio.o .libs/bmpiostub.o .libs/bootnumgen1.o .libs/bootnumgen2.o .libs/bootnumgen3.o .libs/boxbasic.o .libs/boxfunc1.o .libs/boxfunc2.o .libs/boxfunc3.o .libs/boxfunc4.o .libs/bytearray.o .libs/ccbord.o .libs/ccthin.o .libs/classapp.o .libs/colorcontent.o .libs/coloring.o .libs/colormap.o .libs/colormorph.o .libs/colorquant1.o .libs/colorquant2.o .libs/colorseg.o .libs/colorspace.o .libs/compare.o .libs/conncomp.o .libs/convertfiles.o .libs/convolve.o .libs/correlscore.o .libs/dewarp1.o .libs/dewarp2.o .libs/dewarp3.o .libs/dewarp4.o .libs/dnabasic.o .libs/dnafunc1.o .libs/dnahash.o .libs/dwacomb.2.o .libs/dwacomblow.2.o .libs/edge.o .libs/encoding.o .libs/enhance.o .libs/fhmtauto.o .libs/fhmtgen.1.o .libs/fhmtgenlow.1.o .libs/finditalic.o .libs/flipdetect.o .libs/fliphmtgen.o .libs/fmorphauto.o .libs/fmorphgen.1.o .libs/fmorphgenlow.1.o .libs/fpix1.o .libs/fpix2.o .libs/gifio.o .libs/gifiostub.o .libs/gplot.o .libs/graphics.o .libs/graymorph.o .libs/grayquant.o .libs/heap.o .libs/jbclass.o .libs/jp2kheader.o .libs/jp2kheaderstub.o .libs/jp2kio.o .libs/jp2kiostub.o .libs/jpegio.o .libs/jpegiostub.o .libs/kernel.o .libs/leptwin.o .libs/libversions.o .libs/list.o .libs/map.o .libs/maze.o .libs/morph.o .libs/morphapp.o .libs/morphdwa.o .libs/morphseq.o .libs/numabasic.o .libs/numafunc1.o .libs/numafunc2.o .libs/pageseg.o .libs/paintcmap.o .libs/parseprotos.o .libs/partition.o .libs/pdfio1.o .libs/pdfio1stub.o .libs/pdfio2.o .libs/pdfio2stub.o .libs/pix1.o .libs/pix2.o .libs/pix3.o .libs/pix4.o .libs/pix5.o .libs/pixabasic.o .libs/pixacc.o .libs/pixafunc1.o .libs/pixafunc2.o .libs/pixalloc.o .libs/pixarith.o .libs/pixcomp.o .libs/pixconv.o .libs/pixlabel.o .libs/pixtiling.o .libs/pngio.o .libs/pngiostub.o .libs/pnmio.o .libs/pnmiostub.o .libs/projective.o .libs/psio1.o .libs/psio1stub.o .libs/psio2.o .libs/psio2stub.o .libs/ptabasic.o .libs/ptafunc1.o .libs/ptafunc2.o .libs/ptra.o .libs/quadtree.o .libs/queue.o .libs/rank.o .libs/rbtree.o .libs/readbarcode.o .libs/readfile.o .libs/recogbasic.o .libs/recogdid.o .libs/recogident.o .libs/recogtrain.o .libs/regutils.o .libs/rop.o .libs/roplow.o .libs/rotate.o .libs/rotateam.o .libs/rotateorth.o .libs/rotateshear.o .libs/runlength.o .libs/sarray1.o .libs/sarray2.o .libs/scale1.o .libs/scale2.o .libs/seedfill.o .libs/sel1.o .libs/sel2.o .libs/selgen.o .libs/shear.o .libs/skew.o .libs/spixio.o .libs/stack.o .libs/stringcode.o .libs/strokes.o .libs/sudoku.o .libs/textops.o .libs/tiffio.o .libs/tiffiostub.o .libs/utils1.o .libs/utils2.o .libs/warper.o .libs/watershed.o .libs/webpio.o .libs/webpiostub.o .libs/writefile.o .libs/zlibmem.o .libs/zlibmemstub.o   -L/opt/local/lib -lz -lpng16 -ljpeg -ltiff -lwebp -lopenjp2  -Os -arch x86_64 -Wl,-headerpad_max_install_names -arch x86_64   -install_name  /opt/local/lib/liblept.5.dylib -compatibility_version 6 -current_version 6.2 -Wl,-single_module
Undefined symbols for architecture x86_64:
  "_fstatat", referenced from:
      _getFilenamesInDirectory in sarray1.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Indeed fstatat is being used unconditionally and is not implemented on 10.9 or lower (but is available starting with 10.10).

Since the code does not seem to rely on any fstatat-specific behavior, we can just switch to stat on older platforms.

Attachments (1)

leptonica-fstatat.patch (7.8 KB) - added by Ionic (Mihai Moldovan) 3 years ago.
Proposed patch to replace fstatat with stat on older platforms. Includes patches as sent upstream as well. v5.

Download all attachments as: .zip

Change History (8)

comment:1 Changed 3 years ago by Ionic (Mihai Moldovan)

Wait, patch is faulty, need to refresh it.

comment:2 Changed 3 years ago by Ionic (Mihai Moldovan)

That one does actually work the way it is supposed to.

comment:3 Changed 3 years ago by ryandesign (Ryan Schmidt)

Upstream bug report?

comment:4 Changed 3 years ago by Ionic (Mihai Moldovan)

Haven't created one yet. Will do so tomorrow and see how that can be properly incorporated without conditional patching for our specific platforms.

Changed 3 years ago by Ionic (Mihai Moldovan)

Attachment: leptonica-fstatat.patch added

Proposed patch to replace fstatat with stat on older platforms. Includes patches as sent upstream as well. v5.

comment:6 Changed 3 years ago by Ionic (Mihai Moldovan)

Patch merged upstream.

comment:7 Changed 3 years ago by Andrew Stromnov <stromnov@…>

Resolution: fixed
Status: newclosed

In 12d66c539cba67fa03c9559fb86798c7634b7d29/macports-ports:

leptonica: fix for fstatat issue on 10.9 or lower

Closes: #56083

Note: See TracTickets for help on using tickets.