|
From: | Rocky Bernstein |
Subject: | Re: [Libcdio-help] Does libcdio can work with macOS (Mac OS X)? |
Date: | Fri, 15 Sep 2017 07:23:55 -0400 |
Hello Rocky-san,
Thanks for reply...
> 2017/09/15 午後6:35、Rocky Bernstein <address@hidden>のメール:
>
> For now probably the simplest thing to do is go into the file config.h that configure generates and change the line
>
> /* #undef HAVE_DARWIN_CDROM */
>
> to
>
> #define HAVE_DARWIN_CDROM 1
>
> And then run make again. If that works, let me know.
If I configure with --disable-shared option, and edit config.h as you mentioned, make fails with the following:
CCLD cd-drive
Undefined symbols for architecture x86_64:
"_CFDataGetBytes", referenced from:
_read_toc_osx in libcdio.a(osx.o)
"_CFDataGetLength", referenced from:
_read_toc_osx in libcdio.a(osx.o)
"_CFDictionaryGetValue", referenced from:
_get_discmode_osx in libcdio.a(osx.o)
_get_drive_cap_osx in libcdio.a(osx.o)
_get_hwinfo_osx in libcdio.a(osx.o)
_read_toc_osx in libcdio.a(osx.o)
"_CFDictionarySetValue", referenced from:
_cdio_get_devices_osx in libcdio.a(osx.o)
_cdio_get_default_device_osx in libcdio.a(osx.o)
"_CFNumberGetValue", referenced from:
_get_drive_cap_osx in libcdio.a(osx.o)
"_CFRelease", referenced from:
_cdio_get_devices_osx in libcdio.a(osx.o)
_cdio_get_default_device_osx in libcdio.a(osx.o)
_get_discmode_osx in libcdio.a(osx.o)
_get_hwinfo_osx in libcdio.a(osx.o)
_read_toc_osx in libcdio.a(osx.o)
"_CFStringGetCString", referenced from:
_cdio_get_devices_osx in libcdio.a(osx.o)
_cdio_get_default_device_osx in libcdio.a(osx.o)
_get_discmode_osx in libcdio.a(osx.o)
_get_hwinfo_osx in libcdio.a(osx.o)
"_IOBSDNameMatching", referenced from:
_cdio_open_osx in libcdio.a(osx.o)
"_IODestroyPlugInInterface", referenced from:
__free_osx in libcdio.a(osx.o)
"_IOIteratorNext", referenced from:
_cdio_get_devices_osx in libcdio.a(osx.o)
_cdio_get_default_device_osx in libcdio.a(osx.o)
_cdio_open_osx in libcdio.a(osx.o)
_ProbeStorageDevices in libcdio.a(osx.o)
_get_drive_service_osx in libcdio.a(osx.o)
"_IOMasterPort", referenced from:
_cdio_get_devices_osx in libcdio.a(osx.o)
_ProbeStorageDevices in libcdio.a(osx.o)
"_IOObjectConformsTo", referenced from:
_cdio_get_default_device_osx in libcdio.a(osx.o)
_cdio_open_osx in libcdio.a(osx.o)
"_IOObjectRelease", referenced from:
_cdio_get_devices_osx in libcdio.a(osx.o)
_cdio_get_default_device_osx in libcdio.a(osx.o)
_cdio_open_osx in libcdio.a(osx.o)
__free_osx in libcdio.a(osx.o)
_get_drive_cap_osx in libcdio.a(osx.o)
_ProbeStorageDevices in libcdio.a(osx.o)
_get_drive_service_osx in libcdio.a(osx.o)
...
"_IORegistryEntryCreateCFPropert ies", referenced from:
_get_discmode_osx in libcdio.a(osx.o)
_get_drive_cap_osx in libcdio.a(osx.o)
_get_hwinfo_osx in libcdio.a(osx.o)
_read_toc_osx in libcdio.a(osx.o)
"_IORegistryEntryCreateCFPropert y", referenced from:
_cdio_get_devices_osx in libcdio.a(osx.o)
_cdio_get_default_device_osx in libcdio.a(osx.o)
"_IORegistryEntryGetParentIterat or", referenced from:
_cdio_open_osx in libcdio.a(osx.o)
"_IORegistryEntryGetPath", referenced from:
_cdio_open_osx in libcdio.a(osx.o)
_get_drive_service_osx in libcdio.a(osx.o)
"_IOServiceGetMatchingServices", referenced from:
_cdio_get_devices_osx in libcdio.a(osx.o)
_cdio_get_default_device_osx in libcdio.a(osx.o)
_cdio_open_osx in libcdio.a(osx.o)
_ProbeStorageDevices in libcdio.a(osx.o)
_get_drive_service_osx in libcdio.a(osx.o)
"_IOServiceMatching", referenced from:
_cdio_get_devices_osx in libcdio.a(osx.o)
_cdio_get_default_device_osx in libcdio.a(osx.o)
_ProbeStorageDevices in libcdio.a(osx.o)
_get_drive_service_osx in libcdio.a(osx.o)
"_IOServiceRequestProbe", referenced from:
_ProbeStorageDevices in libcdio.a(osx.o)
"___CFConstantStringClassReference ", referenced from:
CFString in libcdio.a(osx.o)
CFString in libcdio.a(osx.o)
CFString in libcdio.a(osx.o)
CFString in libcdio.a(osx.o)
CFString in libcdio.a(osx.o)
CFString in libcdio.a(osx.o)
CFString in libcdio.a(osx.o)
...
"_check", referenced from:
_get_drive_service_osx in libcdio.a(osx.o)
"_kCFAllocatorDefault", referenced from:
_cdio_get_devices_osx in libcdio.a(osx.o)
_cdio_get_default_device_osx in libcdio.a(osx.o)
_get_discmode_osx in libcdio.a(osx.o)
_get_drive_cap_osx in libcdio.a(osx.o)
_get_hwinfo_osx in libcdio.a(osx.o)
_read_toc_osx in libcdio.a(osx.o)
"_kCFBooleanTrue", referenced from:
_cdio_get_devices_osx in libcdio.a(osx.o)
_cdio_get_default_device_osx in libcdio.a(osx.o)
"_kIOMasterPortDefault", referenced from:
_cdio_get_default_device_osx in libcdio.a(osx.o)
_cdio_open_osx in libcdio.a(osx.o)
_get_drive_service_osx in libcdio.a(osx.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [cd-drive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
If I configure with out --disable-shared option, and edit config.h as you mentioned, make success but make check all fails.
../../test-driver: line 107: 95031 Abort trap: 6 "$@" > $log_file 2>&1
FAIL: abs_path
../../test-driver: line 107: 95050 Abort trap: 6 "$@" > $log_file 2>&1
FAIL: bincue
../../test-driver: line 107: 95069 Abort trap: 6 "$@" > $log_file 2>&1
FAIL: cdda
../../test-driver: line 107: 95088 Abort trap: 6 "$@" > $log_file 2>&1
FAIL: cdrdao
../../test-driver: line 107: 95107 Abort trap: 6 "$@" > $log_file 2>&1
FAIL: freebsd
../../test-driver: line 107: 95126 Abort trap: 6 "$@" > $log_file 2>&1
FAIL: gnu_linux
../../test-driver: line 107: 95145 Abort trap: 6 "$@" > $log_file 2>&1
FAIL: logger
../../test-driver: line 107: 95164 Abort trap: 6 "$@" > $log_file 2>&1
FAIL: mmc_read
../../test-driver: line 107: 95183 Abort trap: 6 "$@" > $log_file 2>&1
FAIL: mmc_write
../../test-driver: line 107: 95202 Abort trap: 6 "$@" > $log_file 2>&1
FAIL: nrg
../../test-driver: line 107: 95221 Abort trap: 6 "$@" > $log_file 2>&1
FAIL: osx
../../test-driver: line 107: 95240 Abort trap: 6 "$@" > $log_file 2>&1
FAIL: realpath
../../test-driver: line 107: 95259 Abort trap: 6 "$@" > $log_file 2>&1
FAIL: solaris
../../test-driver: line 107: 95278 Abort trap: 6 "$@" > $log_file 2>&1
FAIL: track
../../test-driver: line 107: 95297 Abort trap: 6 "$@" > $log_file 2>&1
FAIL: win32
============================================================ ================
Testsuite summary for libcdio 0.94
============================================================ ================
# TOTAL: 15
# PASS: 0
# SKIP: 0
# XFAIL: 0
# FAIL: 15
# XPASS: 0
# ERROR: 0
============================================================ ================
See test/driver/test-suite.log
Please report to https://savannah.gnu.org/bugs/?group=libcdio
============================================================ ================
> Although it is true that generally libcdio only adds drivers that have been known to check out, when I look at the shell code that is supposed to allow or disallow macos, the relevant code in configure is:
>
> case $host_os in
> aix*)
> ## Don't use AIX driver until starts to really work
> ## cd_drivers="${cd_drivers}, AIX"
> ## AC_DEFINE([HAVE_AIX_CDROM], [1],
> ## [Define 1 if you have AIX CD-ROM support])
> ;;
> darwin[6-9].*|darwin[1-9][0-9].*) Nop, The relevant code in configure is bellow:
> for ac_header in IOKit/IOKitLib.h CoreFoundation/CFBase.h
>
> And it looks to me that this should match "darwin17.0.0" but apparently it doesn't .
So I thought that your configure support upto darwin 16.x.
case $host_os in
aix*)
## Don't use AIX driver until starts to really work
## cd_drivers="${cd_drivers}, AIX"
## AC_DEFINE([HAVE_AIX_CDROM], [1],
## [Define 1 if you have AIX CD-ROM support])
;;
darwin[6-9].*|darwin1[0-6].*)
for ac_header in IOKit/IOKitLib.h CoreFoundation/CFBase.h
> Here is the code I tried:
>
> set -xv
> host_os=darwin17.0.0
> case $host_os in
> aix*)
> ## Don't use AIX driver until starts to really work
> ## cd_drivers="${cd_drivers}, AIX"
> ## AC_DEFINE([HAVE_AIX_CDROM], [1],
> ## [Define 1 if you have AIX CD-ROM support])
> ;;
> darwin[6-9].*|darwin[1-9][0-9].*) I copied and pasted this code block to a file named test.sh and get the result as follows:
> echo "good"
> ;;
> *)
> echo "Nope"
> esac
> set +xv
>
> If you were to run this code, do you get "good". If is host_os set to darwin17.0.0 ?
$ sh test.sh
host_os=darwin17.0.0
+ host_os=darwin17.0.0
case $host_os in
aix*)
## Don't use AIX driver until starts to really work
## cd_drivers="${cd_drivers}, AIX"
## AC_DEFINE([HAVE_AIX_CDROM], [1],
## [Define 1 if you have AIX CD-ROM support])
;;
darwin[6-9].*|darwin[1-9][0-9].*) + case $host_os in
echo "good"
;;
*)
echo "Nope"
esac
+ echo good
good
set +xv
+ set +xv
Tried to paste configure script, it output same and stopped with syntax error....
Hope that my reply would be a part of help to solve the problem...
Best Regards,
// Miya aka. TougenRoushi
_______________________________________________
Libcdio-help mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/libcdio-help
[Prev in Thread] | Current Thread | [Next in Thread] |