Make error on Solus
peterhavener opened this issue · 2 comments
Getting a make error when trying to build on Solus (2017.04.18)
peter@yoga-13:~/Downloads/rtl8723au$ make
make ARCH=x86_64 CROSS_COMPILE= -C /lib/modules/4.9.23-21.lts/build M=/home/peter/Downloads/rtl8723au modules
make[1]: Entering directory '/usr/src/linux-headers-4.9.23-21.lts'
arch/x86/Makefile:140: CONFIG_X86_X32 enabled but no binutils support
CC [M] /home/peter/Downloads/rtl8723au/core/rtw_cmd.o
gcc: error trying to exec 'as': execvp: No such file or directory
In file included from ./include/linux/kobject.h:21:0,
from ./include/linux/module.h:17,
from /home/peter/Downloads/rtl8723au/include/osdep_service.h:49,
from /home/peter/Downloads/rtl8723au/core/rtw_cmd.c:23:
./include/linux/sysfs.h: In function ‘sysfs_get_dirent’:
./include/linux/sysfs.h:517:37: warning: pointer targets in passing argument 2 of ‘kernfs_find_and_get’ differ in signedness [-Wpointer-sign]
return kernfs_find_and_get(parent, name);
^~~~
In file included from ./include/linux/sysfs.h:15:0,
from ./include/linux/kobject.h:21,
from ./include/linux/module.h:17,
from /home/peter/Downloads/rtl8723au/include/osdep_service.h:49,
from /home/peter/Downloads/rtl8723au/core/rtw_cmd.c:23:
./include/linux/kernfs.h:452:1: note: expected ‘const char *’ but argument is of type ‘const unsigned char *’
kernfs_find_and_get(struct kernfs_node *kn, const char *name)
^~~~~~~~~~~~~~~~~~~
make[2]: *** [scripts/Makefile.build:294: /home/peter/Downloads/rtl8723au/core/rtw_cmd.o] Error 2
make[1]: *** [Makefile:1490: _module_/home/peter/Downloads/rtl8723au] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.9.23-21.lts'
make: *** [Makefile:516: modules] Error 2
I realize this may be to do with how Solus is managing their kernels now. If it is I'd be happy to take it up with their devs to figure out the issue.
I think the error is that the assembler "as" is not available. You need to install that package.
The warnings are an inconsistency in the kernel headers. Routine sysfs_get_dirent() in include/linux/sysfs.h calls kernfs_find_and_get() with the second argument of "const unsigned char *name", whereas the definition of kernfs_find_and_get() expects "const char *name".
This difference in arguments has been present for a long time. What is new is that your set of standard gcc options is now checking.
You are correct, and after installing the system development packages I was able to build successfully.
Sorry, newbie at this. But thanks for that reply. This has been a lifesaver for me, so thanks for maintaining it!