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: Sat, 16 Sep 2017 01:59:52 +0900

Hello Rocky-san,

> 2017/09/15 午後10:21、Rocky Bernstein <address@hidden>のメール:
> 
> I see in lib/osx.c on line 662  the check function getting called. I don't 
> see exactly where it is defined though. 
> 
> Something in High Sierra has changed so that it isn't in the same place as it 
> used to be. The function itself seems pretty straightforward if it had to be 
> written from scratch. 
> 
> Since you have an older macos box, maybe you can find out from that where 
> this check function is located in the OSX libraries on the older versoin. 
> That might suggest what needs changing. 

I googled the phrase "check ( err == kIOReturnSuccess )"  and then find out the 
phrase can be found in the code of sleep control or drive description.  This is 
just my opinion, but there might be no change on High Sierra.

Also, I compared Version 0.94's osx.c with git Version of osx.c and then there 
are no difference!


I have tested your git code with macOS Sierra.  (Current release of macOS)

Then

If I configure with --disable-shared option, it fails with make on below:

Making all in src
  CC       cd-drive.o
  CC       util.o
  CC       getopt.o
  CC       getopt1.o
  CCLD     cd-drive
  CC       cd-info.o
  CC       cddb.o
  CCLD     cd-info
  CC       cd-read.o
  CCLD     cd-read
  CC       iso-info.o
  CCLD     iso-info
  CC       iso-read.o
  CCLD     iso-read
  CC       cdda-player.o
  CCLD     cdda-player
  CC       mmc-tool.o
  CCLD     mmc-tool
make[2]: *** No rule to make target `cd-drive.1', needed by `all-am'.  Stop.
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

The error can be kind of creation of manual, am I right?

The fail place is same if I configured without --disable-shared.

So in my opinion, the change would be in another place.  Not in osx.c....


I also tried the following:

1.Build  libcdio-0.94 with macOS Sierra (Darwin 16.7)
   It succeeded and can access cd on macOS High Sierra (Darwin 17.0)

2.Build libcdio-paranoia-10.2+0.94+2 with macOS Sierra (Darwin 16.7)
  it  succeeded and can access cd on macOS High Sierra (Darwin 17.0)

3.Try to built-in libcdio & paranoia (Build with macOS Sierra (Darwin 16.7)) to 
ffmpeg
 it failed in configure.  The error is "eject_media_osx" in osx.o (osx.c)

4.Try to build libcdio-0.94 with macOS High Sierra (Darwin 17.0) by editing 
configure script's the following portion:
   darwin[6-9].*|darwin1[0-6].*)  to darwin[6-9].*|darwin[1-9][0-9].*)

  This fails with make by the following error.
  
 Making all in src
  CC       cd-drive.o
  CC       util.o
  CC       getopt.o
  CC       getopt1.o
  CCLD     cd-drive
Undefined symbols for architecture x86_64:
  "_check", referenced from:
      _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

Then I thought that the function of 

static io_service_t
get_drive_service_osx(const _img_private_t *p_env) {}

have to be changed.  (Just my guess)

I found that a header file named "IOStorageDeviceCharacteristics.h" was found 
in High Sierra's Kernel.framework but don't found in Sierra's Kernel.framework.
This header file was found by the phrase "kIOCDBlockStorageDeviceClassString" 
in function of get_drive_service_osx.

I'm not sure am I doing correct thing,  but tonight I'll stop around here...


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]