Opened 2 years ago

Closed 2 years ago

Last modified 2 years ago

#64147 closed defect (fixed)

squashfs-tools: builds fail on 10.12 and earlier, due to missing symbol '_utimensat'

Reported by: mascguy (Christopher Nielsen) Owned by: mascguy (Christopher Nielsen)
Priority: Normal Milestone:
Component: ports Version: 2.7.1
Keywords: Cc: cjones051073 (Chris Jones), quentinmit (Quentin Smith)
Port: squashfs-tools

Description

This new port is failing to build on 10.12 and earlier, due to call _utimensat. The latter is missing on those earlier macOS releases.

Example from the 10.12 buildbot:

https://build.macports.org/builders/ports-10.12_x86_64-builder/builds/167925/steps/install-port/logs/stdio

cc  unsquashfs.o unsquash-1.o unsquash-2.o unsquash-3.o unsquash-4.o unsquash-123.o unsquash-34.o unsquash-1234.o swap.o compressor.o unsquashfs_info.o gzip_wrapper.o xz_wrapper.o lzo_wrapper.o lz4_wrapper.o zstd_wrapper.o read_xattrs.o unsquashfs_xattr.o -lpthread -lm -lz -llzma  -llzo2 -llz4 -lzstd -o unsquashfs
Undefined symbols for architecture x86_64:
  "_utimensat", referenced from:
      _create_inode in unsquashfs.o
ld: symbol(s) not found for architecture x86_64

This *might* be fixable via use of MacPorts' legacysupport library. (Or, if that symbol isn't provided by the latter, it might be something we can add.) But need confirmation from the maintainers of legacysupport.

Change History (5)

comment:1 Changed 2 years ago by cjones051073 (Chris Jones)

should be there I think. Just try it and see...

comment:2 Changed 2 years ago by mascguy (Christopher Nielsen)

Cc: quentinmit added; kencu removed
Owner: changed from quentinmit to mascguy

comment:3 Changed 2 years ago by mascguy (Christopher Nielsen)

Version: 2.7.1

comment:4 Changed 2 years ago by Christopher Nielsen <mascguy@…>

Resolution: fixed
Status: assignedclosed

In d0a0b4bdaa64e0abc402fce74acbf0e20e7e90f9/macports-ports (master):

squashfs-tools: add legacysupport, to fix builds on 10.12 and earlier

  • Also rev-bump, as build flags changed slightly across-the-board

Closes: #64147

comment:5 Changed 2 years ago by mascguy (Christopher Nielsen)

The change to use legacysupport fixes this port for macOS releases from 10.7 through 10.12, so we're in great shape.

For 10.6, there's still a build issue, related to dprintf:

[...]
unsquashfs.c: In function ‘pseudo_print’:
unsquashfs.c:3478: warning: implicit declaration of function ‘dprintf’
[...]
Undefined symbols:
  "_dprintf", referenced from:
      _pseudo_print in unsquashfs.o
      _generate_pseudo in unsquashfs.o

That might be fixable too, given the earlier implicit function declaration warning. But overall, looking good!

Last edited 2 years ago by mascguy (Christopher Nielsen) (previous) (diff)
Note: See TracTickets for help on using tickets.