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



I found a header that may work for you. You can find the header in <machine/ansi.h>

HTH

Godfrey

On 05/29/2005, at 22:14 , John Dalgliesh wrote:


Just another angle on this FYI:

I encountered this problem building kexts against the 10.2.8 SDK in
10.4.1, but only with projects of ProjectBuilder vintage.

I solved it by specifying the header path '$(SDKROOT)/usr/include'
explicitly. The ansi.h found in there worked fine and I didn't have to
copy any files anywhere.

Previously, I had had to specify the header path
'$(SDKROOT)/S/L/F/Kernel.framework/Headers' or else it was still finding
the 10.4.1 IOService class and I was getting the load errors described
below.


This was with gcc 3.3. Projects created in Xcode didn't have these
problems at all - simply selecting the cross-development target was all
that was required for them.


{P^/


On Tue, 24 May 2005, Filip Aben wrote:


Hi,

I had the same problem today: switched to 10.4, tried to build my
project in Xcode 2.0 against
MacOSX10.3.9 and got the same error complaining about missing "ppc/
ansi.h".
I switched to GCC 3.3 and the problem dissappeared.

I'm wondering if i'm hiding a potential problem by just switching to
3.3 or is 4.0 just not good
enough yet?

regards,

filip-



---------------------------------------
Filip Aben
Firmware Design Engineer
Option International


On 20 May 2005, at 14:36, Ron Duritsch wrote:


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 (Darwin- 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/gvdl% 40apple.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/f.aben% 40option.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/johnd% 40defyne.org


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: Ron Duritsch <email@hidden>)
 >Re: Xcode 2.0 kext load problem (From: Filip Aben <email@hidden>)
 >Re: Xcode 2.0 kext load problem (From: John Dalgliesh <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.