opensc: Fix libopensc link picking up build host libraries

libopensc failed to link:

  x86_64-yoe-linux-ld.lld: error: unable to find library -lgio-2.0
  x86_64-yoe-linux-ld.lld: error: unable to find library -lgobject-2.0

  libopensc_la_LINK = $(LIBTOOL) ... --tag=OBJC ... $(OBJCLD) ...

with OBJCLD = $(OBJC). The ENABLE_CRYPTOTOKENKIT conditional only keeps
the .m file out of the sources, automake still picks the linker
statically, so this happens on Linux too. AC_PROG_OBJC detects a bare
"x86_64-yoe-linux-clang" with none of the toolchain options, hence the
link ran without --sysroot:

  OBJC = x86_64-yoe-linux-clang
  CC   = ccache x86_64-yoe-linux-clang -target x86_64-yoe-linux ... \
         --sysroot=.../recipe-sysroot -std=gnu23

Point OBJC at the full CC

Also fix floating gio dependency: opensc's
--enable-notify defaults to "detect" and enables glib2 notification
support whenever gio-2.0 happens to be staged in the sysroot by some
other dependency

Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
This commit is contained in:
Khem Raj
2026-09-11 07:44:20 -07:00
parent 568103a64f
commit e588199a08
@@ -29,11 +29,15 @@ EXTRA_OECONF = " \
"
EXTRA_OEMAKE = "DESTDIR=${D}"
# Point OBJC at the full CC, helps computing AC_PROG_OBJC correctly
export OBJC = "${CC}"
PACKAGECONFIG ??= "pcsc"
PACKAGECONFIG[openct] = "--enable-openct,--disable-openct,openct"
PACKAGECONFIG[pcsc] = "--enable-pcsc,--disable-pcsc,pcsc-lite,pcsc-lite pcsc-lite-lib"
PACKAGECONFIG[readline] = "--enable-readline,--disable-readline,readline"
PACKAGECONFIG[notify] = "--enable-notify,--disable-notify,glib-2.0"
FILES:${PN} += "\
${libdir}/opensc-pkcs11.so \