Jump to content

Failure during 'make' trying to build driver


Recommended Posts

I'm trying to get a Creative Extigy external USB soundcard going using the exaudio-1.52 driver available here: http://www.cs.umass.edu/~cochran/

Untarred exaudio-1.52.tgz ok. No ./configure file, so went right to 'make' but it failed:

 

[tim@localhost exaudio-1.52]$ make

gcc -I/lib/modules/2.4.18-6mdk/build/include -D__KERNEL__ -Wall -Wstrict-prototypes-O2

-fomit-frame-pointer -fno-strict-aliasing -pipe

-mpreferred-stack-boundary -march=i586 -DMODULE -c -o audiofunc.o audiofunc.c

gcc: installation problem, cannot exec `cpp0': No such file or directory

make: *** [audiofunc.o] Error 1

 

Hoping for the best, I created a symlink from:

 

/usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.0.4/cpp0

 

where that file could be found, to:

 

/ussr/lib/gcc-lib/i586-mandrake-linux-gnu/2.96

 

where there was no file 'ccp0'. That eliminated the 'no cpp0' error, but 'make' still fails like so:

 

[tim@localhost exaudio-1.52]$ make

gcc -I/lib/modules/2.4.18-6mdk/build/include -D__KERNEL__ -Wall -Wstrict-prototypes -02 -fomit-frame-pointer -fno-strict-aliasing -pipe -mpreferred-stack-boundary=2 -march=i586 -DMODULE -c -o audiofunc.o audiofunc.c

In file included from audiofunc.c:37:

/lib/modules/2.4.18-6mdk/build/include/linux/kernel.h:10:20: stdarg.h: No such file or directory

/lib/modules/2.4.18-6mdk/build/include/linux/kernel.h:10:20: stdarg.h: No such file or directory

In file included from audiofunc.c:37:

/lib/modules/2.4.18-6mdk/build/include/linux/kernel.h:72: parse error before `va_list'

/lib/modules/2.4.18-6mdk/build/include/linux/kernel.h:72: warning: function declaration isn't a prototype

/lib/modules/2.4.18-6mdk/build/include/linux/kernel.h:75: parse error before `va_list'

/lib/modules/2.4.18-6mdk/build/include/linux/kernel.h:75: warning: function declaration isn't a prototype

/lib/modules/2.4.18-6mdk/build/include/linux/kernel.h:79: parse error before `va_list'

/lib/modules/2.4.18-6mdk/build/include/linux/kernel.h:79: warning: function declaration isn't a prototype

make: *** [audiofunc.o] Error 1

 

I'm kinda lost where to go from here. These messages go past my limited expertise. Can someone offer some guidance? Trying to build this on a Mandrake 8.2 box, stock 2.4.18 kernel except patched for Win4Lin, which surely has nothing to do with this. This driver is supposed to work fine with MDK8x, 9x, RH7x, 8x, 9x, etc.

 

Thanks!

Link to comment
Share on other sites

how ya been!?

 

hmmm....have you tried to install that version of gcc? (2.96)

even if you have to force it just to compile and remove it after compile. It 'shouldn't' hurt anything....just for devel. If it does, removing your current and reinstall will fix it. Been a while that I've had multiple gcc's so I don't know about now, plus you're 8.2.

 

[root@ml root]# urpmf cpp0
gcc2.96-cpp:/usr/lib/gcc-lib/i586-mandrake-linux-gnu/2.96/cpp0
gcc2.96-cpp:/usr/lib/gcc-lib/i586-mandrake-linux-gnu/2.96/tradcpp0
cups-drivers:/usr/share/cups/model/minolta/mitcpp01.ppd.gz
prc-tools:/usr/lib/gcc-lib/m68k-palmos/2.95.3-kgpd/cpp0
[root@ml root]# rpm -qa | grep gcc
gcc-cpp-3.3.1-2mdk
gcc-3.3.1-2mdk
gcc-c++-3.3.1-2mdk
libgcc1-3.3.1-2mdk
[root@ml root]#

Link to comment
Share on other sites

Be sure to use a version of gcc that agrees with the instructions in Documentation/Changes in your kernel sources. On certain linux distributions, you may need to use kgcc instead of gcc. You can specify this on the make command line or by editing the makefile.
I'm sure you read this though. Edited by bvc
Link to comment
Share on other sites

Hey bvc - I'm still kickin'...

 

I guess I should've been a little clearer. Actually, I DO have gcc2.96 installed, and only gcc2.96.

 

[root@localhost tim]# rpm -qa gcc

gcc-2.96-0.76mdk

 

[root@localhost tim]# urpmf cpp0

gcc-cpp:/usr/lib/gcc-lib/i586-mandrake-linux-gnu/2.96/cpp0

gcc3.0-cpp:/usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.0.4/cpp0

 

This output shows there is /2.96/cpp0 because of the symlink I made. I only have a few gcc-3.04 files installed, from a package called gcc3.0-ccp. It must've been installed sometime to satisfy dependencies, who knows, probably because some files, 'cpp0' for one, isn't included in the rpm for gcc2.96. That's why I created the symlink, to try to get past the 'no cpp0' error. I figured if I could get it to finish compiling, I'd deal with the version of 'cpp0' later if it failed to load and run, but I've gotta build it first to see if that's even gonna be a problem. Anyway, for what it's worth it did get it past that, but now I'm lost with that next set of errors.

 

As for:

 

"Be sure to use a version of gcc that agrees with the instructions in Documentation/Changes in

your kernel sources. On certain linux distributions, you may need to use kgcc instead of gcc.

You can specify this on the make command line or by editing the makefile.

 

I'm sure you read this though."

 

Yeah, I saw that. 2.96 is the 'approved' version.

 

Good to hear from you - I feel better already knowing you're on the case. Hope you've got ideas...

Link to comment
Share on other sites

well do you knwo for sure what package requires those lib files?

 

if the 3.0.4 lib files are not require for runtime depends of any package then why not remove the package and the symlink and try rebuilding. you errors could all boil down to those 3.0.4 files.

 

well edit that actually...it looks like your kernel header files have depreciated code or missing code.

Edited by sarah31
Link to comment
Share on other sites

[root@localhost /]# urpmf stdarg.h
gcc:/usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.3.2/include/stdarg.h
gcc2.96:/usr/lib/gcc-lib/i586-mandrake-linux-gnu/2.96/include/stdarg.h
dev86-devel:/usr/lib/bcc/include/stdarg.h
dietlibc-devel:/usr/lib/dietlibc/include/stdarg.h
pccts-devel:/usr/include/pccts/pccts_stdarg.h
pnetC:/usr/share/cscc/include/stdarg.h
tcc:/usr/lib/tcc/include/stdarg.h

 

so cpp0 and stdarg.h are both in gcc2.96

Link to comment
Share on other sites

"so cpp0 and stdarg.h are both in gcc2.96"

 

Code:

[tim@localhost tim]$ urpmf stdarg.h

pccts-devel:/usr/include/pccts/pccts_stdarg.h

gcc:/usr/lib/gcc-lib/i586-mandrake-linux-gnu/2.96/include/stdarg.h

egcs:/usr/lib/gcc-lib/i586-mandrake-linux-gnu/egcs-2.91.66/include/stdarg.h

gcc3.0:/usr/lib/gcc-lib/i586-mandrake-linux-gnu/3.0.4/include/stdarg.h

(snip)

 

Well, 'cpp0' sorta is, by the link I made. And clearly, 'stdarg.h' is there, in 2.96, among many other places. So why doesn't 'make' find it? I gotta take a look at the makefile...must be looking in the wrong place...

 

Still, even if I edit the makefile and succeed in getting past the 'stdarg.h' thing, I'm thrown by the last few kernel errors - yeezz, I got a lot to learn.

Link to comment
Share on other sites

Well, the makefile was no help...

 

I know the compiler can't find 'stdarg.h' but I don't know where to put a link to it 'cause I don't know where it's looking - or why it's not finding.

 

Someone suggested I might have to specify to the compiler the location of 'stdarg.h' as an option. Should I take a little time to read up 'man gcc' and try doing it?

Link to comment
Share on other sites

I should have mentioned this and been more technical and assumed it had to do with you being 8.2. For me

 

cpp0 is in gcc2.96-cpp

stdarg.h is in gcc2.96

 

your

cpp0 is in gcc-cpp

stdarg.h is in gcc

 

neither of which are either

2.96

or

3.x

but just

gcc

 

the only rpm that seems installed on your sys is

[root@localhost tim]# rpm -qa gcc

gcc-2.96-0.76mdk

do it again with

rpm -qa | grep gcc

 

again here's mine

[root@ml root]# rpm -qa | grep gcc

gcc-cpp-3.3.1-2mdk

gcc-3.3.1-2mdk

gcc-c++-3.3.1-2mdk

libgcc1-3.3.1-2mdk

[root@ml root]#

 

 

remember urpmf searches the database and cares not was is or is not installed but just what's available. So it appears you need to install some rpms....in fact, install all you can. Hope that does it for ya. Otherwise, it could be that it's one one those picky <version> deals and you'll have to change them all to the more updated way as mine are shown above.

Edited by bvc
Link to comment
Share on other sites

what i meant is that your kernel.h does not contain a reference to stdarg.h.

 

audiofunc.c in the source you are trying to compile makes ference to the kernel.h header which is fouind without a problem but the problem with kernel.h is that there is no reference to stdarg.h. the source you are compiling is expecting it though.

 

that is what i mean by your kernel headers are depreciated or missing code. there were likley changes in gcc standards forced kernel coding changes for the header files. however, the changes did not take place unitl after your kernel version.

 

i am not completely sure of this (without looking at your kernel.h file) but that is what the error is telling me.

Link to comment
Share on other sites

what i meant is that your kernel.h does not contain a reference to stdarg.h.

 

audiofunc.c in the source you are trying to compile makes ference to the kernel.h header which is fouind without a problem but the problem with kernel.h is that there is no reference to stdarg.h. the source you are compiling is expecting it though.

I think it does reference it but as it says

/lib/modules/2.4.18-6mdk/build/include/linux/kernel.h:10:20: stdarg.h: No such file or directory
because from his urpmf stdarg.h
gcc:/usr/lib/gcc-lib/i586-mandrake-linux-gnu/2.96/include/stdarg.h
is not installed.

 

neither is

gcc-cpp:/usr/lib/gcc-lib/i586-mandrake-linux-gnu/2.96/cpp0
but we really won't know that these pkgs are not installed until

rpm -qa | grep gcc

is done. If then all the correct pkgs are installed, the files from the pkgs are in there respective places and are not selfmade symlinks, and the same error persist then the kernel headers can be taken into consideration IMO.

Link to comment
Share on other sites

Ok, thanks to both of you. I get what you're both saying. And bvc, I've definetly killed too many brain cells over the years, 'cause I sure should've caught that gcc/gcc2.96 thing myself. Duh!

 

But I'm absolutely covered up at work right now and got last minute Christmas stuff that needs attention. I'll sort this out more as soon as I have time, install some additional devel packages, make sure everything is where it should be, then double check it again, and when I'm sure I've got it I'll try compiling again and see if I get happy. Happy or sad, I'll post the result here, in case anyone else cares.

 

Hey, I'm still a raw noob at this kinda stuff...thanks, guys, for your patience.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...