Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Xcode 2.0 kext load problem



Godfrey,

Yes, there is an IOService subclass, but the macro appears to be defined
properly. Here's my entry, with some old comments:

// REQUIRED! This macro defines the class's constructors, destructors,
// and several other I/O Kit requires. Do NOT use super as the
// second parameter.  You must use the literal name of the superclass
OSDefineMetaClassAndStructors(com_diaginc_iokit_SpotPCI, IOService)

But all problems disappeared when I placed a copy of the ansi file in:

/Developer/SDKs/MacOSX10.2.8.sdk/System/Library/Frameworks/Kernel.framework/
Headers/ppc/ansi.h

Ron

On 5/19/05 6:05 PM, "Godfrey van der Linden" <email@hidden> wrote:

> The ansi file is a red herring I'm afraid.
> 
> My best guess (they are usually pretty accurate guesses too ;-), is
> that you have an IOService subclass in your driver.  IOService hasn't
> changed for quite a long time but it finally changed in 10.4.  This
> means that we need to do a binary compatibility on all drivers
> compiled with a pre-10.4 IOService.  For some reason your driver is
> not patching.  This is usually because you haven't used the macro :-
> 
> OSDefineMetaClassAndStructors(<com_diaginc_ourdiagclass>, IOService);
> 
> Or you have the wrong 'superclass' name in it.  Check it out.
> 
> Godfrey
> 
> On 05/19/2005, at 10:06 , Ron Duritsch wrote:
> 
>> Dean,
>> 
>> After more searching (still not quite used to new search in 10.4) I
>> did find
>> the ppc/ansi.h file in the 10.2.8 SDK, but the compiler can't seem
>> to find
>> it, as shown by the error message in Xcode:
>> 
>>  "/Developer/SDKs/MacOSX10.2.8.sdk/System/Library/Frameworks/
>> Kernel.framewor
>> k/Headers/machine/ansi.h:33:22: error: ppc/ansi.h: No such file or
>> directory
>> 
>> 
>> Ron
>> 
>> 
>> On 5/19/05 12:32 PM, "Ron Duritsch" <email@hidden> wrote:
>> 
>> 
>>> More information, and problems: After reading up a bit more in the
>>> darwin
>>> mailing list archives I saw where a couple of years ago there was
>>> a similar
>>> problem whose root cause was that the original project file
>>> emanated from
>>> the old ProjectBuilder application, and there were flags problems.
>>> That's
>>> the case here in that the project file has moved along from
>>> Project builder
>>> through Xcode 1.0, 1.5, and now 2.0. So I decided to create a new
>>> project
>>> file in Xcode 2.0. This was done quickly and easily, and compiled
>>> against
>>> the Current SDK in GCC 4.0. The resultant PCI kext runs fine in
>>> Tiger. I
>>> then tried to target the 10.2.8 SDK. The kext would not build
>>> because it
>>> can't find the "ppc/ansi.h" file, referenced from "machine/ansi.h"
>>> in the
>>> 10.2.8 SDK:
>>> 
>>> #if defined (__ppc__)
>>> #include "ppc/ansi.h"
>>> #elif defined (__i386__)
>>> #include "i386/ansi.h"
>>> #else
>>> #error architecture not supported
>>> #endif
>>> 
>>> Indeed, this "ppc/ansi.h" file is not on my machine. The same
>>> missing file
>>> problem occurs when I target the 10.3.9 SDK.
>>> 
>>> So I tried kextload on the kext I built targeting the 10.4 SDK
>>> onto a 10.3.9
>>> system, and I get the original "... is not compatible with its
>>> superclass"
>>> error message.
>>> 
>>> Still hoping for some clues,
>>> 
>>> Ron Duritsch
>>> Diagnostic Instruments, Inc.
>>> 
>>> 
>>> On 5/19/05 10:03 AM, "Ron Duritsch" <email@hidden> wrote:
>>> 
>>> 
>>>> I am maintaining a PCI kext for a digital camera that operates on
>>>> 10.2,
>>>> 10.3, and now 10.4.1. If I build the kext in Xcode 1.5 it will
>>>> load and work
>>>> fine  on all three operating systems. If, however, I build it on
>>>> Xcode 2.0
>>>> in Tiger, it will only load and run on Tiger. It will not load at
>>>> boot time
>>>> on 10.3.9. If I try kextload in Terminal on 10.3.9 I get the
>>>> following error
>>>> message:
>>>> 
>>>> 25com_diaginc_iokit_SpotPCI is not compatible with its superclass,
>>>> 9IOService superclass changed?
>>>> kextload: a link/load error occured for kernel extension
>>>> /System/Library/Extensions/SpotPCI.kext
>>>> load failed for extension /System/Library/Extensions/SpotPCI.kext
>>>> 
>>>> I am building against the 10.2.8 SDK. I get the same load error
>>>> whether I
>>>> compile using GCC 4.0 or 3.3 in Xcode 2.0.
>>>> 
>>>> In the Xcode 2.0 release notes "About Xcode Tools", under the
>>>> section
>>>> entitled "Compatibility of Built Binaries" it reads "IOKit-based
>>>> device
>>>> drivers built with the GCC 3.3 or GCC 4.0 compilers will run on
>>>> Mac OS X
>>>> v10.2 (Jaguar), Mac OS X v10.3 (Panther), and Mac OS X v10.4 (Tiger)
>>>> systems."
>>>> 
>>>> Any clues or hints as to what I need to change to get this to work?
>>>> 
>>>> Thanks,
>>>> 
>>>> Ron Duritsch
>>>> Diagnostic Instruments, Inc.
>>>> 
>>>> 
>>>> _______________________________________________
>>>> Do not post admin requests to the list. They will be ignored.
>>>> Darwin-drivers mailing list      (email@hidden)
>>>> Help/Unsubscribe/Update your Subscription:
>>>> http://lists.apple.com/mailman/options/darwin-drivers/rduritsch%
>>>> 40diaginc.com
>>>> 
>>>> This email sent to email@hidden
>>>> 
>>>> 
>>> 
>>> _______________________________________________
>>> Do not post admin requests to the list. They will be ignored.
>>> Darwin-drivers mailing list      (email@hidden)
>>> Help/Unsubscribe/Update your Subscription:
>>> http://lists.apple.com/mailman/options/darwin-drivers/rduritsch%
>>> 40diaginc.com
>>> 
>>> This email sent to email@hidden
>>> 
>>> 
>> 
>>  _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Darwin-drivers mailing list      (email@hidden)
>> Help/Unsubscribe/Update your Subscription:
>> http://lists.apple.com/mailman/options/darwin-drivers/email@hidden
>> 
>> This email sent to email@hidden
>> 
> 

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-drivers mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/darwin-drivers/email@hidden

This email sent to email@hidden

References: 
 >Re: Xcode 2.0 kext load problem (From: Godfrey van der Linden <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.