Bug 10634 - #include <linux/usbdevice_fs.h> does not compile due to missing __user definition
: #include <linux/usbdevice_fs.h> does not compile due to missing __user defini...
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/glibc-kernheaders)
: unstable
: all Linux
: P2 normal
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2007-01-10 15:48 by
Modified: 2007-07-08 00:56 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2007-01-10 15:48:16
В многих заголовках ядра присутствует символ препроцессора __user. Насколько я
знаю, он имеет смысл только для ядра. Поэтому софт (конкретно - kvm), который
пытается скомпилироваться с таким заголовком, валится с ошибкой.

/usr/include/linux/usbdevice_fs.h:49: error: variable or field `__user'
declared
void
------- Comment #1 From 2007-01-10 15:55:00 -------
На самом деле макрос __user определяется в <linux/compiler.h>; можно либо
добавить #include <linux/compiler.h> в файлы, использующие __user, либо
пропустить файлы заголовков через sed, чтобы убрать эти конструкции:

# Eliminate the contents of (and inclusions of) compiler.h
HDRSED  := sed     -e "s/ inline / __inline__ /g" \
        -e "s/[[:space:]]__user[[:space:]]\+/ /g" \
        -e "s/(__user[[:space:]]\+/ (/g" \
        -e "s/[[:space:]]__force[[:space:]]\+/ /g" \
        -e "s/(__force[[:space:]]\+/ (/g" \
        -e "s/[[:space:]]__iomem[[:space:]]\+/ /g" \
        -e "s/(__iomem[[:space:]]\+/ (/g" \
        -e "s/[[:space:]]__attribute_const__[[:space:]]\+/\ /g" \
        -e "s/[[:space:]]__attribute_const__$$//" \
        -e "/^\#include <linux\/compiler.h>/d"

(из linux-2.6.18/scripts/Makefile.headersinst).

Вариант "добавить #include <linux/compiler.h> в файлы, использующие заголовки
ядра" не годится, поскольку linux/compiler.h не входит в набор файлов, которые
разработчики ядра считают допустимыми для использования в userspace (этот файл
не устанавливается по make headers_install).
------- Comment #2 From 2007-01-25 03:19:13 -------
Hopefully fixed in 2.6.17-alt4.