Thanks - I will try patching this soon.

I would be interested in seeing a failure, applying the patch and seeing a
fix.

Would you give me more information about the environment so I can replicate
this failure?

Thanks. and thanks for the patch.



On Mon, Jan 8, 2024 at 9:11 PM Nicholas Vinson <nvinson...@gmail.com> wrote:

> 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
>
>
>

Reply via email to