* Driver headers used by alsa-lib
@ 2002-10-04 17:20 Pavel Roskin
2002-10-04 17:48 ` Peter L Jones
2002-10-08 11:14 ` Takashi Iwai
0 siblings, 2 replies; 6+ messages in thread
From: Pavel Roskin @ 2002-10-04 17:20 UTC (permalink / raw)
To: alsa-devel
Hello!
There is another configuration problem that needs to be fixed. I had ALSA
already installed (CVS version as of a week ago or so). Today I compiled
alsa-driver, alsa-lib and alsa-util and then started installing them.
I found that "make install" caused recompilation in alsa-lib. It used to
be like that, but this time I wanted to do it right.
I found that the reason for recompilation is new files in
/usr/include/sound/, in particular asoundef.h. It turmed out that there
are two different files with this name - one is
alsa-lib/include/asoundef.h, the other is alsa-kernel/include/asoundef.h.
Object files under alsa-lib were compiled against headers in
/usr/include/sound/, and "make install" in alsa-kernel installed new
headers there. The dependency was recorded by the compiler, so the
alsa-lib object files became out of date.
It seems to me that there are at least two things wrong here. First is
that the kernel should not be installing its headers in places where they
can be accidentally used. Most software should not need those headers at
all.
For example, Linux kernel includes are available under linux and asm in
/usr/include. When I'm using them, I'm well aware of the fact that it's
essentially a private kernel interface and that I should avoid it if
possible.
If I include <sound/asoundef.h>, I would assume that it's something for
user-space software, not for kernel drivers. Maybe kernel headers should
be installed under /usr/include/sound/kernel if we install them at all?
The other problem is that alsa-lib should be using its own headers from
its own distribution rather than the preinstalled ones, otherwise we have
a whole new problem with compiling against an older library.
I'm ready to provide patches once somebody confirms that my understanding
of the problem is correct.
--
Regards,
Pavel Roskin
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Driver headers used by alsa-lib
2002-10-04 17:20 Driver headers used by alsa-lib Pavel Roskin
@ 2002-10-04 17:48 ` Peter L Jones
2002-10-08 11:14 ` Takashi Iwai
1 sibling, 0 replies; 6+ messages in thread
From: Peter L Jones @ 2002-10-04 17:48 UTC (permalink / raw)
To: Pavel Roskin, alsa-devel
On Friday 04 Oct 2002 18:20, Pavel Roskin wrote:
> Hello!
>
[snip - forgive me chopping the lot :-)]
>
> I'm ready to provide patches once somebody confirms that my understanding
> of the problem is correct.
I think you're perfectly correct.
It sounds like ALSA is doing _exactly_ like what the kernel developers used to
complain about the glibc developers doing - compiling against the kernel
headers. As you suggest, it's _wrong_!
There needs to be a clear split - kernel space code and user space code.
Consider them maintained in separate universes. Only at runtime do they
_need_ to co-exist. If the kernel developers change an interface, they need
to tell the user-space (library) developers what the change is.
The two developer teams could have entirely different requirements for
organising header files, too...
(Well, it beats "me too" but, having reread the above, I'd like to add that I
think I've gone a little overboard :-).)
-- Peter
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Driver headers used by alsa-lib
2002-10-04 17:20 Driver headers used by alsa-lib Pavel Roskin
2002-10-04 17:48 ` Peter L Jones
@ 2002-10-08 11:14 ` Takashi Iwai
2002-10-09 6:58 ` Jaroslav Kysela
1 sibling, 1 reply; 6+ messages in thread
From: Takashi Iwai @ 2002-10-08 11:14 UTC (permalink / raw)
To: Pavel Roskin; +Cc: perex, alsa-devel
At Fri, 4 Oct 2002 13:20:32 -0400 (EDT),
Pavel Roskin wrote:
>
> Hello!
>
> There is another configuration problem that needs to be fixed. I had ALSA
> already installed (CVS version as of a week ago or so). Today I compiled
> alsa-driver, alsa-lib and alsa-util and then started installing them.
>
> I found that "make install" caused recompilation in alsa-lib. It used to
> be like that, but this time I wanted to do it right.
>
> I found that the reason for recompilation is new files in
> /usr/include/sound/, in particular asoundef.h. It turmed out that there
> are two different files with this name - one is
> alsa-lib/include/asoundef.h, the other is alsa-kernel/include/asoundef.h.
>
> Object files under alsa-lib were compiled against headers in
> /usr/include/sound/, and "make install" in alsa-kernel installed new
> headers there. The dependency was recorded by the compiler, so the
> alsa-lib object files became out of date.
>
> It seems to me that there are at least two things wrong here. First is
> that the kernel should not be installing its headers in places where they
> can be accidentally used. Most software should not need those headers at
> all.
>
> For example, Linux kernel includes are available under linux and asm in
> /usr/include. When I'm using them, I'm well aware of the fact that it's
> essentially a private kernel interface and that I should avoid it if
> possible.
well, not all people are aware of that inclusion of kernel headers
will break portability ;)
> If I include <sound/asoundef.h>, I would assume that it's something for
> user-space software, not for kernel drivers. Maybe kernel headers should
> be installed under /usr/include/sound/kernel if we install them at all?
sound header files are not necessary except for alsa-lib and hardware
specific applications like alsa-tools' ones.
i think /usr/include/sound is confusing. it looks like normal header
files...
> The other problem is that alsa-lib should be using its own headers from
> its own distribution rather than the preinstalled ones, otherwise we have
> a whole new problem with compiling against an older library.
right.
actually i use the extracted alsa-kernel header files to build
alsa-lib rpm package, too, so why not in the alsa-lib tree itself?
we need only three files from alsa-kernel, namely, asound.h,
asoundef.h and asequencer.h. they can be copied into alsa-lib tree,
for example, under alsa-lib/include/alsa-kernel directory, which will
be not copied to the public place.
or, we can keep the alsa-kernel header files on
/usr/include/alsa/kernel directory, so that we don't need two distinct
directories which may confuse people. (even in this case, the three
files above should be duplicated in alsa-lib, though.)
Jaroslav, how about this?
Takashi
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Driver headers used by alsa-lib
2002-10-08 11:14 ` Takashi Iwai
@ 2002-10-09 6:58 ` Jaroslav Kysela
2002-10-09 9:55 ` Takashi Iwai
0 siblings, 1 reply; 6+ messages in thread
From: Jaroslav Kysela @ 2002-10-09 6:58 UTC (permalink / raw)
To: Takashi Iwai; +Cc: Pavel Roskin, alsa-devel@lists.sourceforge.net
On Tue, 8 Oct 2002, Takashi Iwai wrote:
> At Fri, 4 Oct 2002 13:20:32 -0400 (EDT),
> Pavel Roskin wrote:
> >
> > Hello!
> >
> > There is another configuration problem that needs to be fixed. I had ALSA
> > already installed (CVS version as of a week ago or so). Today I compiled
> > alsa-driver, alsa-lib and alsa-util and then started installing them.
> >
> > I found that "make install" caused recompilation in alsa-lib. It used to
> > be like that, but this time I wanted to do it right.
> >
> > I found that the reason for recompilation is new files in
> > /usr/include/sound/, in particular asoundef.h. It turmed out that there
> > are two different files with this name - one is
> > alsa-lib/include/asoundef.h, the other is alsa-kernel/include/asoundef.h.
> >
> > Object files under alsa-lib were compiled against headers in
> > /usr/include/sound/, and "make install" in alsa-kernel installed new
> > headers there. The dependency was recorded by the compiler, so the
> > alsa-lib object files became out of date.
> >
> > It seems to me that there are at least two things wrong here. First is
> > that the kernel should not be installing its headers in places where they
> > can be accidentally used. Most software should not need those headers at
> > all.
> >
> > For example, Linux kernel includes are available under linux and asm in
> > /usr/include. When I'm using them, I'm well aware of the fact that it's
> > essentially a private kernel interface and that I should avoid it if
> > possible.
>
> well, not all people are aware of that inclusion of kernel headers
> will break portability ;)
>
> > If I include <sound/asoundef.h>, I would assume that it's something for
> > user-space software, not for kernel drivers. Maybe kernel headers should
> > be installed under /usr/include/sound/kernel if we install them at all?
>
> sound header files are not necessary except for alsa-lib and hardware
> specific applications like alsa-tools' ones.
> i think /usr/include/sound is confusing. it looks like normal header
> files...
>
>
> > The other problem is that alsa-lib should be using its own headers from
> > its own distribution rather than the preinstalled ones, otherwise we have
> > a whole new problem with compiling against an older library.
>
> right.
>
> actually i use the extracted alsa-kernel header files to build
> alsa-lib rpm package, too, so why not in the alsa-lib tree itself?
>
> we need only three files from alsa-kernel, namely, asound.h,
> asoundef.h and asequencer.h. they can be copied into alsa-lib tree,
> for example, under alsa-lib/include/alsa-kernel directory, which will
> be not copied to the public place.
>
> or, we can keep the alsa-kernel header files on
> /usr/include/alsa/kernel directory, so that we don't need two distinct
> directories which may confuse people. (even in this case, the three
> files above should be duplicated in alsa-lib, though.)
>
>
> Jaroslav, how about this?
The duplication of headers does not sound so bad.
The /usr/include/alsa/kernel is a good place.
Do not forget to include all headers files (or portions) which can be
used from user space (emu10k1.h, sscape_ioctl.h, sb16_csp.h, asound_fm.h,
probably all ainstr_* files etc.).
Jaroslav
-----
Jaroslav Kysela <perex@suse.cz>
Linux Kernel Sound Maintainer
ALSA Project http://www.alsa-project.org
SuSE Linux http://www.suse.com
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Driver headers used by alsa-lib
2002-10-09 6:58 ` Jaroslav Kysela
@ 2002-10-09 9:55 ` Takashi Iwai
2002-10-09 10:06 ` Takashi Iwai
0 siblings, 1 reply; 6+ messages in thread
From: Takashi Iwai @ 2002-10-09 9:55 UTC (permalink / raw)
To: Jaroslav Kysela; +Cc: Pavel Roskin, alsa-devel@lists.sourceforge.net
At Wed, 9 Oct 2002 08:58:12 +0200 (CEST),
Jaroslav wrote:
>
> > we need only three files from alsa-kernel, namely, asound.h,
> > asoundef.h and asequencer.h. they can be copied into alsa-lib tree,
> > for example, under alsa-lib/include/alsa-kernel directory, which will
> > be not copied to the public place.
> >
> > or, we can keep the alsa-kernel header files on
> > /usr/include/alsa/kernel directory, so that we don't need two distinct
> > directories which may confuse people. (even in this case, the three
> > files above should be duplicated in alsa-lib, though.)
> >
> >
> > Jaroslav, how about this?
>
> The duplication of headers does not sound so bad.
> The /usr/include/alsa/kernel is a good place.
> Do not forget to include all headers files (or portions) which can be
> used from user space (emu10k1.h, sscape_ioctl.h, sb16_csp.h, asound_fm.h,
> probably all ainstr_* files etc.).
as mentioned above, alsa-lib needs only the three header files from
alsa-kernel. hence the duplication is necessary only for them, and
it's not too much.
the installation of kernel header files shall be done anyway from
alsa-driver, so the all files will be there. should be no problem.
ok, i'll try this.
Takashi
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Driver headers used by alsa-lib
2002-10-09 9:55 ` Takashi Iwai
@ 2002-10-09 10:06 ` Takashi Iwai
0 siblings, 0 replies; 6+ messages in thread
From: Takashi Iwai @ 2002-10-09 10:06 UTC (permalink / raw)
To: Jaroslav Kysela; +Cc: Pavel Roskin, alsa-devel@lists.sourceforge.net
sorry, corrections:
At Wed, 09 Oct 2002 11:55:44 +0200,
I wrote:
>
> as mentioned above, alsa-lib needs only the three header files from
> alsa-kernel. hence the duplication is necessary only for them, and
> it's not too much.
also ainstr_*.h are necessary, too.
> the installation of kernel header files shall be done anyway from
> alsa-driver, so the all files will be there. should be no problem.
it turned out that the files are included as <sound/*.h>, so
apparently we need to put the files under sound directory.
the candidate is,
1. /usr/include/alsa/kernel/sound/*.h
2. /usr/include/alsa/sound/*.h
3. /usr/include/sound/*.h (as it is)
i'd prefer 1 since it's clear that the header files belong to the
kernel, but it's a bit too deep.
suggestions?
Takashi
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2002-10-09 10:06 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-10-04 17:20 Driver headers used by alsa-lib Pavel Roskin
2002-10-04 17:48 ` Peter L Jones
2002-10-08 11:14 ` Takashi Iwai
2002-10-09 6:58 ` Jaroslav Kysela
2002-10-09 9:55 ` Takashi Iwai
2002-10-09 10:06 ` Takashi Iwai
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.