bugCompact Disc Input and Control Library - Bugs: bug #30019, When built on OS X 10.6 libcdio...

 
 

bug #30019: When built on OS X 10.6 libcdio fails to find OSX device driver

Submitted by:  Jeremiah Boyle <j3r3miah>
Submitted on:  Mon 31 May 2010 10:32:41 PM UTC  
 
Category: compilationSeverity: 5 - Average
Item Group: libcdioStatus: In Progress
Privacy: PublicAssigned to: Rocky Bernstein <rocky>
Open/Closed: Closed

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

(Jump to the original submission Jump to the original submission)

Tue 24 Apr 2012 04:52:27 AM UTC, comment #18:

Tested as working on 10.6 and 10.7. Please close.

(will create another bug ticket for the free crash)

Nigel Pearson <nigelpearson>
Mon 23 Apr 2012 10:25:42 AM UTC, comment #17:

Ok, updated in git. This time for sure?

Rocky Bernstein <rocky>
Project AdministratorIn charge of this item.
Mon 23 Apr 2012 09:12:12 AM UTC, comment #16:

Still not working because $host_os is darwin10.8.0, not darwin10

You missed the asterisk at the end of those darwin patterns :-(

Nigel Pearson <nigelpearson>
Mon 23 Apr 2012 12:32:49 AM UTC, comment #15:

Thanks for the configure.ac patch. Is in git now. And no, it is not dependant on the version of autoconf, [] is the way one quotes a string.

Thanks also for looking into the malloc/free. A guess is that some structure has changed in other drivers it is not reflected in the osx driver. There have been some major changes recently. CD-Text was overhauled which is the most likely cause. Some changes were also made to support non-gcc compilers MSVC in particular which doesn't allow flexible arrays at the end of structures.

Rocky Bernstein <rocky>
Project AdministratorIn charge of this item.
Mon 23 Apr 2012 12:09:36 AM UTC, comment #14:

Getting closer, but those wildcards don't seem to work in configure:

After a bit of fiddling, it looks like autoconf strips the square brackets off. Try this:

It might just be the old autoconf I am using, but I doubt it?

Still looking into the malloc/free problem.

Nigel Pearson <nigelpearson>
Sun 22 Apr 2012 03:51:16 AM UTC, comment #13:

I have made changes in git to try to address all of the issues except the SEGV. For that I'd need a gdb traceback. Better would be if there is something like valgrind for OSX which tracks invalid memory reads and writes.

Rocky Bernstein <rocky>
Project AdministratorIn charge of this item.
Sat 21 Apr 2012 12:31:52 PM UTC, comment #12:

1) Rocky, good guess about the bool. Looks like include/cdio/types.h assumes stdbool.h is always included beforehand (the #ifndef __bool_true_false_are_defined).

When compiling osx.c, it isn't. Correct way is for configure to check for stdbool.h, and include/cdio/types.h should #include it if exists on the platform.

A simpler way is just to include it in osx.c :-)

Sadly, with either compile fix, git head has other faults:

Core dump reveals:

2)a) Duplicate symbol stuff appears to be resolved. Thanks!

2)b) 10.7 is:
darwin11 needs to be added to configure.ac, lines 327 and 349. Will probably need darwin12 for 10.8, too.

P.S. The new darwin_10 stuff in configure.ac is broken:
I don't think variables are expanded in AC_DEFINE ?

Nigel Pearson <nigelpearson>
Wed 18 Apr 2012 11:21:32 AM UTC, comment #11:

Re: comment #10

1) the "conflicting types" must probably be different definitions of "bool". You can see what the definition of bool is by compiling osx.c using the gcc flags -dD -E and changing -o to say /tmp/osx.i. Then look for definitions of bool to see why this is getting defined differently two ways.

2) What does running config.guess in the directory where configure is located report? What does uname -a show?

I believe the problems with the duplicate symbol _cdtext_format_enum should be resolved in current git sources.

Rocky Bernstein <rocky>
Project AdministratorIn charge of this item.
Tue 17 Apr 2012 01:54:05 AM UTC, comment #10:

Re: comment #6

After grabbing last night's Git master, and hacking (10.6 only has autoconf 2.61 on 10.6, and 10.7 doesn't seem to come with any autoconf)...

1) On 10.6, the includes and HAVE_DARWIN_CDROM are all OK, but compilation fails elsewhere:

2) On 10.7, configure doesn't set HAVE_DARWIN_CDROM:

and make fails elsewhere, as per comments #7 thru #9 (another anonymous, not me :-)

Nigel Pearson <nigelpearson>
Mon 16 Apr 2012 11:48:04 PM UTC, comment #9:

that helped but there are other files with same issue:

ld: duplicate symbol _cdtext_format_enum in .libs/bincue.o and .libs/cdtext.o for architecture x86_64

it seems like bad form, and the source of this build issue, that xxx_private.h is being included anywhere but xxx.c:

aix.c:#include "cdtext_private.h"
bsdi.c:#include "cdtext_private.h"
cdtext.c:#include "cdtext_private.h"
image/bincue.c:#include "cdtext_private.h"
image/cdrdao.c:#include "cdtext_private.h"
image/nrg.c:#include "cdtext_private.h"
mmc/mmc.c:#include "cdtext_private.h"
solaris.c:#include "cdtext_private.h"

Anonymous
Mon 16 Apr 2012 11:16:14 PM UTC, comment #8:

I think I found the problem here. Try with current git sources, commit db91979..dd7a5dc or apply the attached patch.

(file #25665)

Rocky Bernstein <rocky>
Project AdministratorIn charge of this item.
Mon 16 Apr 2012 07:52:37 PM UTC, comment #7:

I am attempting to test the latest changes on OS X 10.7 but i am running into build issues. Building in lib/driver produces a linker error:

ld: duplicate symbol _cdtext_format_enum in .libs/gnu_linux.o and .libs/cdtext.o for architecture x86_64

Anonymous
Fri 13 Apr 2012 08:22:21 PM UTC, comment #6:

First and foremost, thanks for the information.

In the current git sources what I had done was to use the new path from your patch but only in Darwin 10 or greater. From http://en.wikipedia.org/wiki/Darwin_%28operating_system%29 this goes back to August 2009. Given what you report it may also be valid from Darwin 9 or greater as well. But I am guessing that the other path was okay since no one has said anything about this previously.

Would you do me a favor and try the current git sources to see that things compile properly on 10.6.8. If so, let me know and I will close ticket. Thanks.

Rocky Bernstein <rocky>
Project AdministratorIn charge of this item.
Tue 10 Apr 2012 11:55:39 AM UTC, comment #5:

Hi Rocky. The Apple documentation has mandated the shorter path for about 5 years:

http://developer.apple.com/library/mac/#documentation/Darwin/Reference/IOKit/SCSITaskLib_h/index.html

Only compiled and tested on a 10.6.8 machine. A quick search of include paths on nearby machines:

reveals safety for the last 4 major OS releases?

Sorry for the anonymity - the artificially complex I was forced to register with has somehow slipped my short term memory, and I have to wait another day for that unused account to expire :-(

-unavailable-

Anonymous
Tue 10 Apr 2012 07:41:42 AM UTC, comment #4:

With respect to the patch that was attached, what OSX were tested. Just 10.6?

#include locations were changed in that patch. How far back are those different locations valid?

Rocky Bernstein <rocky>
Project AdministratorIn charge of this item.
Sun 09 Jan 2011 02:52:35 AM UTC, comment #3:

No. I still don't have access to something that runs Snow Leopard let alone have something I can develop from.

But the code is open source. Patches are welcome and I invite others can feel free to look at and suggest fixes.

Rocky Bernstein <rocky>
Project AdministratorIn charge of this item.
Sun 09 Jan 2011 02:41:19 AM UTC, comment #2:

Have you had a chance to look at this?

Jeremiah Boyle <j3r3miah>
Thu 15 Jul 2010 10:31:00 AM UTC, comment #1:

Sorry for the delay.

If you attach diff output on the headers and output logs perhaps I can take a look. Right now I don't have anything I can develop Snow Leopard on.

Thanks.

Rocky Bernstein <rocky>
Project AdministratorIn charge of this item.
Mon 31 May 2010 10:32:41 PM UTC, original submission:

I attempted to build 0.82 and git latest on Snow Leopard. In both cases the resulting library is broken.

I poked around a little bit and noticed that the osx driver isn't even being init'ed because HAVE_DARWIN_CDROM seems to not be defined.

Just defining HAVE_DARWIN_CDROM doesn't resolve the problem. There are some IOKit headers which seem to have change been moved in 10.6. Once I fixed those I got some undefined symbols. That's where I gave up.

It looks like the build just needs to be fixed up for Snow Leopard.

$ ./example/device
++ WARN: could not retrieve file info for `image.nrg': No such file or directory++ WARN: can't open nrg image file image.nrg for reading
Problem in trying to find a driver.

We don't have: AIX SCSI driver
We don't have: BSDI ATAPI and SCSI driver
We don't have: FreeBSD driver
We don't have: NetBSD driver
We don't have: GNU/Linux ioctl and MMC driver
We don't have: Solaris ATAPI and SCSI driver
We don't have: IBM OS/2 driver
We don't have: Apple Darwin OS X driver
We don't have: MS Windows ASPI and ioctl driver
We have: cdrdao (TOC) disk image driver
We have: bin/cuesheet disk image driver
We have: Nero NRG disk image driver

Jeremiah Boyle <j3r3miah>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

Attached Files
file #25665:  osx-10.7.patch added by rocky (330B - text/x-diff)
file #25623:  cdio.patch added by None (1KiB - application/octet-stream - Build fixes for 10.6)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by nigelpearson (Posted a comment)
  • -unavailable- added by rocky (Posted a comment)
  • -unavailable- added by j3r3miah (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 9 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Tue 24 Apr 2012 01:57:33 PM UTCrockyOpen/ClosedOpen=>Closed
    Mon 16 Apr 2012 11:16:14 PM UTCrockyAttached File-=>Added osx-10.7.patch, #25665
    Fri 13 Apr 2012 08:22:21 PM UTCrockyStatusNone=>In Progress
    Tue 10 Apr 2012 01:00:55 AM UTCNoneAttached File-=>Added cdio.patch, #25623
    Thu 15 Jul 2010 10:31:00 AM UTCrockyCategoryNone=>compilation
      Item GroupNone=>libcdio
      Assigned toNone=>rocky
    Mon 31 May 2010 10:33:01 PM UTCj3r3miahCarbon-CopyRemoved -unavailable-=>-
    Mon 31 May 2010 10:32:41 PM UTCj3r3miahCarbon-Copy-=>Added -unavailable-

    Back to the top


    Powered by Savane 3.1-cleanup1