From: Mikko Rapeli <hidden> Date: 2015-02-16 23:08:12
The DECLARE_BITMAP macro is not available in userspace headers.
Fixes userspace compile error:
error: expected specifier-qualifier-list before ‘DECLARE_BITMAP’
Signed-off-by: Mikko Rapeli <redacted>
---
include/uapi/sound/emu10k1.h | 6 ++++++
1 file changed, 6 insertions(+)
At Tue, 17 Feb 2015 00:05:44 +0100,
Mikko Rapeli wrote:
The DECLARE_BITMAP macro is not available in userspace headers.
Fixes userspace compile error:
error: expected specifier-qualifier-list before ‘DECLARE_BITMAP’
It's nonsense. This results in an incompatible structure, thus ABI
would be broken completely (actually this will break the compile of
ld10k1).
Takashi
From: Mikko Rapeli <hidden> Date: 2015-03-11 01:22:10
On Tue, Feb 17, 2015 at 07:27:38AM +0100, Takashi Iwai wrote:
At Tue, 17 Feb 2015 00:05:44 +0100,
Mikko Rapeli wrote:
quoted
The DECLARE_BITMAP macro is not available in userspace headers.
Fixes userspace compile error:
error: expected specifier-qualifier-list before ‘DECLARE_BITMAP’
It's nonsense. This results in an incompatible structure, thus ABI
would be broken completely (actually this will break the compile of
ld10k1).
None of the exported headers after 'make headers_install' have definition
of DECLARE_BITMAP macro. It is defined in include/linux/types.h which is
different from include/uapi/linux/types.h and missing this definition and
a few other things.
One option would be add DECLARE_BITMAP macro to include/uapi/linux/types.h
and add include/linux/bitops.h to uapi.
Thoughts?
-Mikko
At Wed, 11 Mar 2015 03:22:04 +0200,
Mikko Rapeli wrote:
On Tue, Feb 17, 2015 at 07:27:38AM +0100, Takashi Iwai wrote:
quoted
At Tue, 17 Feb 2015 00:05:44 +0100,
Mikko Rapeli wrote:
quoted
The DECLARE_BITMAP macro is not available in userspace headers.
Fixes userspace compile error:
error: expected specifier-qualifier-list before ‘DECLARE_BITMAP’
It's nonsense. This results in an incompatible structure, thus ABI
would be broken completely (actually this will break the compile of
ld10k1).
None of the exported headers after 'make headers_install' have definition
of DECLARE_BITMAP macro. It is defined in include/linux/types.h which is
different from include/uapi/linux/types.h and missing this definition and
a few other things.
One option would be add DECLARE_BITMAP macro to include/uapi/linux/types.h
and add include/linux/bitops.h to uapi.
Thoughts?
Are there any other headers like that? If this is the only one, leave
it as is. The only program that reads this are some alsa-tools ones
and they have already own DECLARE_BITMAP() definition. Adding the
extra definition here will even break the compilation out of sudden.
Takashi
On Wednesday 11 March 2015 07:11:18 Takashi Iwai wrote:
At Wed, 11 Mar 2015 03:22:04 +0200,
Mikko Rapeli wrote:
quoted
On Tue, Feb 17, 2015 at 07:27:38AM +0100, Takashi Iwai wrote:
quoted
At Tue, 17 Feb 2015 00:05:44 +0100,
Mikko Rapeli wrote:
quoted
The DECLARE_BITMAP macro is not available in userspace headers.
Fixes userspace compile error:
error: expected specifier-qualifier-list before ‘DECLARE_BITMAP’
It's nonsense. This results in an incompatible structure, thus ABI
would be broken completely (actually this will break the compile of
ld10k1).
None of the exported headers after 'make headers_install' have definition
of DECLARE_BITMAP macro. It is defined in include/linux/types.h which is
different from include/uapi/linux/types.h and missing this definition and
a few other things.
One option would be add DECLARE_BITMAP macro to include/uapi/linux/types.h
and add include/linux/bitops.h to uapi.
Thoughts?
Are there any other headers like that? If this is the only one, leave
it as is. The only program that reads this are some alsa-tools ones
and they have already own DECLARE_BITMAP() definition. Adding the
extra definition here will even break the compilation out of sudden.
I think it's a worthy goal to have the header files be compilable
standalone, but I don't think we should make the DECLARE_BITMAP()
macro globally visible in user space, in particular because it will
clash with every instance in which user space has a macro of the
same name.
What we could do here is to add a private copy of the macro to emu10k1.h
under a different name, such as __EMU10K1_DECLARE_BITMAP().
Arnd
At Wed, 11 Mar 2015 10:46:29 +0100,
Arnd Bergmann wrote:
On Wednesday 11 March 2015 07:11:18 Takashi Iwai wrote:
quoted
At Wed, 11 Mar 2015 03:22:04 +0200,
Mikko Rapeli wrote:
quoted
On Tue, Feb 17, 2015 at 07:27:38AM +0100, Takashi Iwai wrote:
quoted
At Tue, 17 Feb 2015 00:05:44 +0100,
Mikko Rapeli wrote:
quoted
The DECLARE_BITMAP macro is not available in userspace headers.
Fixes userspace compile error:
error: expected specifier-qualifier-list before ‘DECLARE_BITMAP’
It's nonsense. This results in an incompatible structure, thus ABI
would be broken completely (actually this will break the compile of
ld10k1).
None of the exported headers after 'make headers_install' have definition
of DECLARE_BITMAP macro. It is defined in include/linux/types.h which is
different from include/uapi/linux/types.h and missing this definition and
a few other things.
One option would be add DECLARE_BITMAP macro to include/uapi/linux/types.h
and add include/linux/bitops.h to uapi.
Thoughts?
Are there any other headers like that? If this is the only one, leave
it as is. The only program that reads this are some alsa-tools ones
and they have already own DECLARE_BITMAP() definition. Adding the
extra definition here will even break the compilation out of sudden.
I think it's a worthy goal to have the header files be compilable
standalone,
In general yes, but this case is very minor issue:
- the file in question is for a hardware device-specific data
definition,
- there are only two programs read this file, both can be built
properly,
- and the device and the programs are very old, modifying such need
extra care.
but I don't think we should make the DECLARE_BITMAP()
macro globally visible in user space, in particular because it will
clash with every instance in which user space has a macro of the
same name.
What we could do here is to add a private copy of the macro to emu10k1.h
under a different name, such as __EMU10K1_DECLARE_BITMAP().
On Thursday 12 March 2015 07:11:48 Takashi Iwai wrote:
At Wed, 11 Mar 2015 10:46:29 +0100,
Arnd Bergmann wrote:
quoted
On Wednesday 11 March 2015 07:11:18 Takashi Iwai wrote:
quoted
At Wed, 11 Mar 2015 03:22:04 +0200,
Are there any other headers like that? If this is the only one, leave
it as is. The only program that reads this are some alsa-tools ones
and they have already own DECLARE_BITMAP() definition. Adding the
extra definition here will even break the compilation out of sudden.
I think it's a worthy goal to have the header files be compilable
standalone,
In general yes, but this case is very minor issue:
- the file in question is for a hardware device-specific data
definition,
- there are only two programs read this file, both can be built
properly,
- and the device and the programs are very old, modifying such need
extra care.
Right, we should only do it if the goal is to have all uapi headers
includable standalone. For a particular header file there is very
little benefit as you say, but it would be useful if we can automatically
test for regressions with new or modified headers.
Arnd
At Thu, 12 Mar 2015 09:45:42 +0100,
Arnd Bergmann wrote:
On Thursday 12 March 2015 07:11:48 Takashi Iwai wrote:
quoted
At Wed, 11 Mar 2015 10:46:29 +0100,
Arnd Bergmann wrote:
quoted
On Wednesday 11 March 2015 07:11:18 Takashi Iwai wrote:
quoted
At Wed, 11 Mar 2015 03:22:04 +0200,
Are there any other headers like that? If this is the only one, leave
it as is. The only program that reads this are some alsa-tools ones
and they have already own DECLARE_BITMAP() definition. Adding the
extra definition here will even break the compilation out of sudden.
I think it's a worthy goal to have the header files be compilable
standalone,
In general yes, but this case is very minor issue:
- the file in question is for a hardware device-specific data
definition,
- there are only two programs read this file, both can be built
properly,
- and the device and the programs are very old, modifying such need
extra care.
Right, we should only do it if the goal is to have all uapi headers
includable standalone. For a particular header file there is very
little benefit as you say, but it would be useful if we can automatically
test for regressions with new or modified headers.
True. Yet another option would be just move this file back from
include/uapi/sound to include/sound. Basically no user-space programs
care about this file, as they have already a copy of old header fils
in the package.
But maybe defining __EMU10K1_DECLARE_BITMAP() would be the easiest
solution, I suppose.
thanks,
Takashi