libcdio-help
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Libcdio-help] Does libcdio can work with macOS (Mac OS X)?


From: 桃源老師
Subject: Re: [Libcdio-help] Does libcdio can work with macOS (Mac OS X)?
Date: Fri, 15 Sep 2017 20:02:06 +0900

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)
      ...
  "_IORegistryEntryCreateCFProperties", 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)
  "_IORegistryEntryCreateCFProperty", referenced from:
      _cdio_get_devices_osx in libcdio.a(osx.o)
      _cdio_get_default_device_osx in libcdio.a(osx.o)
  "_IORegistryEntryGetParentIterator", 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].*)
>        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 .  

Nop, The relevant code in configure is bellow:
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].*)
>        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 ? 

I copied and pasted this code block to a file named test.sh and get the result 
as follows:

$ 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].*)
         echo "good"
         ;;
     *)
         echo "Nope"
esac
+ case $host_os in
+ 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

Attachment: smime.p7s
Description: S/MIME cryptographic signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]