kernel-packages team mailing list archive
-
kernel-packages team
-
Mailing list archive
-
Message #93337
[Bug 1348442] Re: Unable to compile proprietary kernel driver under ARM64 Ubuntu 14.04
You are not permitted to link to GPL only symbols if your module is not
GPL, the error there is telling you you are trying to do exactly that:
FATAL: modpost: GPL-incompatible module test.ko uses GPL-only symbol
'xen_dma_ops'
Either one has to work with the upstream contributor to relax that
symbol to EXPORT_SYMBOL, or you need to find an alternative.
If you do not expect your device to encounter systems running on XEN you
could likely short circut this by defining xen_dma_ops as NULL. before
you include that header:
#define xen_dma_ops NULL
Though if you do that you should also check for xen_initial_domain() in
your init (if you can call that) and abort if true.
That said, it seems rather unfortuanate that those ops being _GPL
renders he whole DMA infratructure useless. It is worth approaching
whoever committed that and asking for that symbol to be relaxed.
--
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1348442
Title:
Unable to compile proprietary kernel driver under ARM64 Ubuntu 14.04
Status in linux package in Ubuntu:
Confirmed
Bug description:
Compiling a kernel driver with a proprietary license (i.e.
MODULE_LICENSE("Proprietary")) for ARM64 under Ubuntu 14.04 results in
the following link error:
# make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 -C /home/ctuffli/dev/ubuntu-trusty/debian/build/build-generic/ M=`pwd` modules
make: Entering directory `/home/ctuffli/dev/ubuntu-trusty/debian/build/build-generic'
CC [M] /home/ctuffli/dev/ocs/test/test.o
In file included from /home/ctuffli/dev/ubuntu-trusty/include/linux/printk.h:5:0,
from /home/ctuffli/dev/ubuntu-trusty/include/linux/kernel.h:13,
from /home/ctuffli/dev/ubuntu-trusty/include/linux/sched.h:15,
from /home/ctuffli/dev/ubuntu-trusty/arch/arm64/include/asm/compat.h:25,
from /home/ctuffli/dev/ubuntu-trusty/arch/arm64/include/asm/stat.h:23,
from /home/ctuffli/dev/ubuntu-trusty/include/linux/stat.h:5,
from /home/ctuffli/dev/ubuntu-trusty/include/linux/module.h:10,
from /home/ctuffli/dev/ocs/test/test.c:1:
/home/ctuffli/dev/ocs/test/test.c: In function ‘__inittest’:
/home/ctuffli/dev/ubuntu-trusty/include/linux/init.h:297:4: warning: return from incompatible pointer type [enabled by default]
{ return initfn; } \
^
/home/ctuffli/dev/ocs/test/test.c:34:1: note: in expansion of macro ‘module_init’
module_init(test_init);
^
Building modules, stage 2.
MODPOST 1 modules
FATAL: modpost: GPL-incompatible module test.ko uses GPL-only symbol 'xen_dma_ops'
make[3]: *** [__modpost] Error 1
make[2]: *** [modules] Error 2
make[1]: *** [sub-make] Error 2
make: *** [all] Error 2
make: Leaving directory `/home/ctuffli/dev/ubuntu-trusty/debian/build/build-generic'
It appears that including <linux/dma-mapping.h> is enough to trigger this problem
# nm -gl test.o | grep xen_start_info
U xen_start_info /home/ctuffli/dev/ubuntu-trusty/arch/arm64/include/asm/dma-mapping.h:42
Test case attached
---
AlsaDevices: Error: command ['ls', '-l', '/dev/snd/'] failed with exit code 2: ls: cannot access /dev/snd/: No such file or directory
AplayDevices: Error: [Errno 2] No such file or directory
ApportVersion: 2.14.1-0ubuntu3.2
Architecture: arm64
ArecordDevices: Error: [Errno 2] No such file or directory
CRDA: Error: [Errno 2] No such file or directory
CurrentDmesg: [ 15.365073] xgene-enet 17020000.ethernet eth0: eth0: link up 1000 Mbps
DistroRelease: Ubuntu 14.04
HibernationDevice: RESUME=UUID=88388f89-d798-4675-9542-27cacae45a9d
IwConfig: Error: [Errno 2] No such file or directory
Lsusb: Error: command ['lsusb'] failed with exit code 1: unable to initialize libusb: -99
Package: linux (not installed)
PciMultimedia:
ProcEnviron:
TERM=screen
PATH=(custom, no user)
LANG=en_US.UTF-8
SHELL=/bin/bash
ProcFB:
ProcKernelCmdLine: console=ttyS0,115200n8 ro
ProcVersionSignature: Ubuntu 3.13.0-32.57-generic 3.13.11.4
RelatedPackageVersions:
linux-restricted-modules-3.13.0-32-generic N/A
linux-backports-modules-3.13.0-32-generic N/A
linux-firmware 1.127.4
RfKill: Error: [Errno 2] No such file or directory
Tags: trusty
Uname: Linux 3.13.0-32-generic aarch64
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups:
_MarkForUpload: True
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1348442/+subscriptions
References