With default options ld.lld-16 and newer fails to link due to undefined symbols listed in libddio.sym. Specifically:
cdio_get_default_device_bsdi cdio_get_devices_bsdi cdio_have_bsdi cdio_open_am_bsdi cdio_open_bsdi cdio_set_drive_speed mmc_get_last_lsn mmc_isrc_track_read_subchannel The definitions for the 5 *_bsdi symbols were removed with commit 487136b3c6c80bbc772c56e6a388b12db55982f4. Neither the definition nor declaration appear in the git history for the symbols cdio_set_drive_speed and mmc_get_last_lsn. The definition for was removed with commit b427b174e664f632756bb1653fd2463592066fa3. Fixes Gentoo bug 915826 ( https://bugs.gentoo.org/915826 ). Signed-off-by: Nicholas Vinson <nvinson...@gmail.com> --- include/cdio/iso9660.h | 2 +- lib/driver/libcdio.sym | 8 -------- lib/iso9660/iso9660_fs.c | 2 ++ 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/include/cdio/iso9660.h b/include/cdio/iso9660.h index f5eb09e2..6bb99460 100644 --- a/include/cdio/iso9660.h +++ b/include/cdio/iso9660.h @@ -910,8 +910,8 @@ iso9660_dir_calc_record_size (unsigned int namelen, unsigned int su_len); @return stat_t of entry if we found lsn, or NULL otherwise. Caller must free return value using iso9660_stat_free(). */ -#define iso9660_fs_find_lsn iso9660_find_fs_lsn iso9660_stat_t *iso9660_fs_find_lsn(CdIo_t *p_cdio, lsn_t i_lsn); +iso9660_stat_t *iso9660_find_fs_lsn(CdIo_t *p_cdio, lsn_t i_lsn); /*! diff --git a/lib/driver/libcdio.sym b/lib/driver/libcdio.sym index 9143ccf5..7d757af9 100644 --- a/lib/driver/libcdio.sym +++ b/lib/driver/libcdio.sym @@ -48,7 +48,6 @@ cdio_get_cdtext cdio_get_cdtext_raw cdio_get_default_device cdio_get_default_device_bincue -cdio_get_default_device_bsdi cdio_get_default_device_cdrdao cdio_get_default_device_driver cdio_get_default_device_freebsd @@ -59,7 +58,6 @@ cdio_get_default_device_solaris cdio_get_default_device_win32 cdio_get_devices cdio_get_devices_bincue -cdio_get_devices_bsdi cdio_get_devices_cdrdao cdio_get_devices_freebsd cdio_get_devices_linux @@ -101,7 +99,6 @@ cdio_get_track_sec_count cdio_guess_cd_type cdio_have_atapi cdio_have_bincue -cdio_have_bsdi cdio_have_cdrdao cdio_have_driver cdio_have_freebsd @@ -135,7 +132,6 @@ cdio_msf_to_str cdio_open cdio_open_am cdio_open_am_bincue -cdio_open_am_bsdi cdio_open_am_cd cdio_open_am_cdrdao cdio_open_am_freebsd @@ -146,7 +142,6 @@ cdio_open_am_osx cdio_open_am_solaris cdio_open_am_win32 cdio_open_bincue -cdio_open_bsdi cdio_open_cd cdio_open_cdrdao cdio_open_cue @@ -171,7 +166,6 @@ cdio_read_sectors cdio_realpath cdio_set_arg cdio_set_blocksize -cdio_set_drive_speed cdio_set_speed cdio_stdio_destroy cdio_stdio_new @@ -224,7 +218,6 @@ mmc_get_drive_mmc_cap mmc_get_dvd_struct_physical mmc_get_event_status mmc_get_hwinfo -mmc_get_last_lsn mmc_get_mcn mmc_get_media_changed mmc_get_track_isrc @@ -236,7 +229,6 @@ mmc_is_disctype_cdrom mmc_is_disctype_dvd mmc_is_disctype_hd_dvd mmc_is_disctype_overwritable -mmc_isrc_track_read_subchannel mmc_last_cmd_sense mmc_mode_select_10 mmc_mode_sense diff --git a/lib/iso9660/iso9660_fs.c b/lib/iso9660/iso9660_fs.c index f18a2a16..f6843aec 100644 --- a/lib/iso9660/iso9660_fs.c +++ b/lib/iso9660/iso9660_fs.c @@ -1775,6 +1775,8 @@ iso9660_fs_find_lsn(CdIo_t *p_cdio, lsn_t i_lsn) free(psz_full_filename); return p_statbuf; } +iso9660_stat_t * +iso9660_find_fs_lsn(CdIo_t *p_cdio, lsn_t i_lsn) __attribute__ ((alias ("iso9660_fs_find_lsn"))); /*! Given a directory pointer, find the filesystem entry that contains -- 2.43.0