板子连线
串口接GND、RX2和TX2。
USB Type-C接口用来供电。
板子背面有一颗10脚芯片,嘉立创因为缺库存,没有给我贴,所以只能飞线,把RV1106G3芯片上的USB DP和DM与AIC8800DC WiFi模块的USB DP和DM相连,也就是3脚连9脚,4脚连8脚。
飞线后,板上的USB Type-C接口只能供电,没有USB功能。RV1106G3芯片的USB处于主机模式。
下载和编译幸狐官方系统镜像
虚拟机环境:Fedora 41 64位 (Fedora-Workstation-Live-x86_64-41-1.4.iso)
(为什么不用Ubuntu?因为我不喜欢Ubuntu修改后的unity风格的GNOME桌面环境,喜欢Fedora里面原生的GNOME环境)
下载代码:
cd ~/Documents
git clone https://gitee.com/LuckfoxTECH/luckfox-pico.git
cd luckfox-pico
安装编译工具:
sudo dnf install g++
sudo dnf install dtc
sudo dnf install openssl
sudo dnf install openssl-devel-engine
sudo dnf install flex
sudo dnf install bison
sudo dnf install makeinfo
sudo dnf install gperf
sudo dnf install cmake
sudo dnf install patch
sudo dnf install perl-English
sudo dnf install perl-ExtUtils-MakeMaker
sudo dnf install perl-Thread-Queue
sudo dnf install perl-FindBin
sudo dnf install lzma
(特别注意:编译前必须安装lzma,否则编译过程中不会提示错误,但烧录到板子上后uboot无法启动linux内核,报## Checking uboot 0x00200000 (lzma @0x00400000) ... sha256(e3b0c44298...) + uboot: decompress error, ret=1的错误)
编译:
./build.sh lunch
选择[5] RV1106_Luckfox_Pico_Pro
[1] SPI_NAND
[0] Buildroot
然后
./build.sh
(重要)解决make[1]: Entering directory '/home/oct1158/Documents/luckfox-pico/sysdrv/source/kernel'后长时间无输出,且编译内核失败时不显示错误信息的问题:
修改sysdrv/source/kernel/Makefile
删掉或注释掉下面的语句
ifneq ($(findstring s,$(filter-out --%,$(MAKEFLAGS))),)
quiet=silent_
endif
报错:Unknown option 'passive-ftp'
解决方案:用sed命令把buildroot生成的文件里面的--passive-ftp选项去掉。
cd sysdrv/source/buildroot/buildroot-2023.02.6
sed -i "s/wget --passive-ftp/wget/g" utils/genrandconfig Config.in output/build/buildroot-config/autoconf.h output/build/buildroot-config/auto.conf .config
cd ../../../../
报错:../src/tramp.c:262:22: error: implicit declaration of function 'open_temp_exec_file' [-Wimplicit-function-declaration]
解决方案:修改sysdrv/source/buildroot/buildroot-2023.02.6/output/build/host-libffi-3.4.4/src/tramp.c文件。在顶部添加一行
int open_temp_exec_file(void);
烧录镜像
在fedora虚拟机上安装samba服务器:
sudo setenforce 0
sudo systemctl stop firewalld
sudo dnf install samba
把/etc/samba/smb.conf里面的workgroup = SAMBA改成
workgroup = WORKGROUP
server min protocol = NT1
lanman auth = yes
ntlm auth = yes
(后面三句话是为了支持XP系统)
启动samba服务器:
sudo systemctl start smb
sudo systemctl start nmb
设置当前用户的文件共享密码(独立密码):
sudo smbpasswd -a $(whoami)
板子按住REV键上电。
在64位Windows 7 SP1系统下以管理员身份运行瑞芯微SocToolKit_v1.98_20240705_01_win烧录软件。
(该烧录软件不支持原版64位Windows XP SP2和64位Windows Vista SP2)
芯片选择RV1106。
搜索路径选择\\fedora\oct1158\Documents\luckfox-pico\output\image。
选择正确的串口号,波特率选择1500000。勾选所有文件(一共8个文件),点击下载按钮。
烧录完成后,板子按RST键重启,即可在串口中看到启动成功。登录用户名和密码分别是root和luckfox。
修改配置文件,添加对AIC8800DC USB WiFi模块的支持
[sysdrv/source/kernel/arch/arm/boot/dts/rv1106g-luckfox-pico-pro.dts]
&usbdrd_dwc3 {
status = "okay";
dr_mode = "peripheral"; 改成 dr_mode = "host";
};
[project/cfg/BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1106_Luckfox_Pico_Pro-IPC.mk]
末尾添加
# enable rockchip wifi
export RK_ENABLE_WIFI=y
export RK_ENABLE_WIFI_CHIP=AIC8800DW_USB
# config wifi ssid and passwd
# this will generate /etc/wpa_supplicant.conf
export LF_WIFI_SSID="路由器名称"
export LF_WIFI_PSK="路由器密码"
[sysdrv/drv_ko/wifi/insmod_wifi.sh]
删除下列代码
#aic8800
if [ -n "$(cat /proc/device-tree/model | grep "W")" ]; then
insmod cfg80211.ko
insmod libarc4.ko
insmod ctr.ko
insmod ccm.ko
insmod libaes.ko
insmod aes_generic.ko
insmod aic8800_bsp.ko
sleep 0.2
insmod aic8800_fdrv.ko
sleep 2
insmod aic8800_btlpm.ko
sleep 0.1
fi
改成
#aic8800
if [ -f /oem/usr/ko/aic8800_fdrv.ko ]
then
insmod /oem/usr/ko/cfg80211.ko
insmod /oem/usr/ko/aic_load_fw.ko aic_fw_path=/oem/usr/ko/aic_fw
insmod /oem/usr/ko/aic8800_fdrv.ko
fi
改完后重新编译并烧录,重启后板子已自动连上wifi。并且能ping通百度。
(整个过程完全不需要改内核的menuconfig)
瑞芯微工具套件v1.98的兼容性
瑞芯微SocToolKit_v1.98_20240705_01_win烧录软件在原版64位XP SP2系统下运行,会提示找不到comctl32.dll的LoadIconMetric函数,XP系统里面没有这个函数。
XP SP2系统打了one core api 4.0.1补丁后,可以运行这个烧录软件,但是无法选择文件夹路径(选择后路径不会填入文本框),只能自己手动输入路径。然而“搜索路径”按钮左边的文本框是个只读文本框,没有办法手动输入,所以这个功能没法用。
在64位Vista SP2系统下,因为Vista系统不支持CM_MapCrToWin32Err函数,所以软件无法运行。
所以,这个烧录软件最低需要64位的Win7系统才能运行。
生成的wpa_supplicant.conf配置文件内容
[root@luckfox root]# cat /etc/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
ap_scan=1
update_config=1
network={
ssid="xxx"
psk="xxx"
key_mgmt=WPA-PSK
}
[root@luckfox root]#
Fedora 42 gcc15编译时遇到的错误
Fedora41升级到42后,gcc也从14升级到了15。
gcc15编译幸狐镜像会遇到下面三个问题。
https://zh.purasbar.com/list.php?b=%E7%91%9E%E8%8A%AF%E5%BE%AE
(1)fedora42用gcc15编译host-m4-1.4.19出错,提示gl_oset.h:275:40: error: expected identifier or '(' before 'int'。
In file included from gl_avltree_oset.h:21,
from gl_avltree_oset.c:21:
gl_oset.h:275:1: warning: 'nodiscard' attribute ignored [-Wattributes]
275 | GL_OSET_INLINE _GL_ATTRIBUTE_NODISCARD int
| ^~~~~~~~~~~~~~
gl_oset.h:275:40: error: expected identifier or '(' before 'int'
275 | GL_OSET_INLINE _GL_ATTRIBUTE_NODISCARD int
| ^~~
make[5]: *** [Makefile:2871: gl_avltree_oset.o] Error 1
make[5]: Leaving directory '/home/oct1158/Documents/Code/C/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/build/host-m4-1.4.19/lib'
make[4]: *** [Makefile:2481: all] Error 2
make[4]: Leaving directory '/home/oct1158/Documents/Code/C/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/build/host-m4-1.4.19/lib'
make[3]: *** [Makefile:2018: all-recursive] Error 1
make[3]: Leaving directory '/home/oct1158/Documents/Code/C/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/build/host-m4-1.4.19'
make[2]: *** [Makefile:1974: all] Error 2
make[2]: Leaving directory '/home/oct1158/Documents/Code/C/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/build/host-m4-1.4.19'
make[1]: *** [package/pkg-generic.mk:293: /home/oct1158/Documents/Code/C/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/build/host-m4-1.4.19/.stamp_built] Error 2
make[1]: Leaving directory '/home/oct1158/Documents/Code/C/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6'
make: *** [Makefile:618: buildroot] Error 2
make: Leaving directory '/home/oct1158/Documents/Code/C/luckfox-pico/sysdrv'
[build.sh:error] Running build_rootfs failed!
[build.sh:error] exit code 2 from line 858:
[build.sh:info] make rootfs -C ${SDK_SYSDRV_DIR}
[oct1158@fed41-bh8f7e0 luckfox-pico]$
解决方案:
修改sysdrv/source/buildroot/buildroot-2023.02.6/output/build/host-m4-1.4.19/lib/config.h文件,找到第2589-2595行。
注释掉前5行和最后一行,只留下倒数第二行。
//#if 201710L < __STDC_VERSION__
//# define _GL_ATTRIBUTE_NODISCARD [[__nodiscard__]]
//#elif _GL_HAS_ATTRIBUTE (warn_unused_result)
//# define _GL_ATTRIBUTE_NODISCARD __attribute__ ((__warn_unused_result__))
//#else
# define _GL_ATTRIBUTE_NODISCARD
//#endif
(2) fedora42用gcc15编译host-gettext-gnu-0.20.1出错,提示../../gettext-runtime/intl/dcigettext.c:147:7: error: conflicting types for 'getcwd'; have 'char *(void)'。
In file included from ../../gettext-runtime/intl/dcigettext.c:92:
../../gettext-runtime/intl/gettextP.h: In function 'SWAP':
../../gettext-runtime/intl/gettextP.h:119:1: warning: old-style function definition [-Wold-style-definition]
119 | SWAP (i)
| ^~~~
../../gettext-runtime/intl/dcigettext.c: At top level:
../../gettext-runtime/intl/dcigettext.c:147:7: error: conflicting types for 'getcwd'; have 'char *(void)'
147 | char *getcwd ();
| ^~~~~~
In file included from ../../gettext-runtime/intl/dcigettext.c:65:
/usr/include/unistd.h:531:14: note: previous declaration of 'getcwd' with type 'char *(char *, size_t)' {aka 'char *(char *, long unsigned int)'}
531 | extern char *getcwd (char *__buf, size_t __size) __THROW __wur;
| ^~~~~~
../../gettext-runtime/intl/dcigettext.c: In function 'libintl_dcigettext':
../../gettext-runtime/intl/dcigettext.c:640:21: error: too many arguments to function 'getcwd'; expected 0, have 2
640 | ret = getcwd (resolved_dirname, path_max);
| ^~~~~~ ~~~~~~~~~~~~~~~~
../../gettext-runtime/intl/dcigettext.c:147:7: note: declared here
147 | char *getcwd ();
| ^~~~~~
make[5]: *** [Makefile:2554: dcigettext.lo] Error 1
make[5]: Leaving directory '/home/oct1158/Documents/Code/C/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/build/host-gettext-gnu-0.20.1/gettext-tools/intl'
make[4]: *** [Makefile:2142: all] Error 2
make[4]: Leaving directory '/home/oct1158/Documents/Code/C/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/build/host-gettext-gnu-0.20.1/gettext-tools/intl'
make[3]: *** [Makefile:2177: all-recursive] Error 1
make[3]: Leaving directory '/home/oct1158/Documents/Code/C/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/build/host-gettext-gnu-0.20.1/gettext-tools'
make[2]: *** [Makefile:2045: all] Error 2
make[2]: Leaving directory '/home/oct1158/Documents/Code/C/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/build/host-gettext-gnu-0.20.1/gettext-tools'
make[1]: *** [package/pkg-generic.mk:293: /home/oct1158/Documents/Code/C/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/build/host-gettext-gnu-0.20.1/.stamp_built] Error 2
make[1]: Leaving directory '/home/oct1158/Documents/Code/C/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6'
make: *** [Makefile:618: buildroot] Error 2
make: Leaving directory '/home/oct1158/Documents/Code/C/luckfox-pico/sysdrv'
[build.sh:error] Running build_rootfs failed!
[build.sh:error] exit code 2 from line 858:
[build.sh:info] make rootfs -C ${SDK_SYSDRV_DIR}
[oct1158@fed41-bh8f7e0 luckfox-pico]$
解决方案:
修改sysdrv/source/buildroot/buildroot-2023.02.6/output/build/host-gettext-gnu-0.20.1/gettext-runtime/intl/dcigettext.c文件,注释掉第147行的char *getcwd ();。(看清楚是6个字符的getcwd,不是上面5个字符的getwd)
(项目中一共有三个dcigettext.c文件,只需要改一个文件,就是host-gettext-gnu-0.20.1里面那个文件,其他两个文件没用到,不用改)
(3)fedora42用gcc15编译bash-5.2.15出错,提示mkbuiltins.c:267:29: error: too many arguments to function 'xmalloc'; expected 0, have 1。
/usr/bin/gcc -c -DHAVE_CONFIG_H -DSHELL -I. -I.. -I.. -I../include -I../lib -I. -I/home/oct1158/Documents/Code/C/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/host/include -O2 -I/home/oct1158/Documents/Code/C/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/host/include -DCROSS_COMPILING mkbuiltins.c
mkbuiltins.c: In function 'main':
mkbuiltins.c:232:1: warning: old-style function definition [-Wold-style-definition]
232 | main (argc, argv)
| ^~~~
mkbuiltins.c:267:29: error: too many arguments to function 'xmalloc'; expected 0, have 1
267 | error_directory = xmalloc (2 + strlen (argv[arg_index]));
| ^~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mkbuiltins.c:62:14: note: declared here
62 | static char *xmalloc (), *xrealloc ();
| ^~~~~~~
mkbuiltins.c:307:34: error: too many arguments to function 'xmalloc'; expected 0, have 1
307 | temp_struct_filename = xmalloc (15);
| ^~~~~~~ ~~
mkbuiltins.c:62:14: note: declared here
62 | static char *xmalloc (), *xrealloc ();
| ^~~~~~~
mkbuiltins.c:312:13: error: too many arguments to function 'file_error'; expected 0, have 1
312 | file_error (temp_struct_filename);
| ^~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~
mkbuiltins.c:206:6: note: declared here
206 | void file_error ();
| ^~~~~~~~~~
mkbuiltins.c:320:13: error: too many arguments to function 'file_error'; expected 0, have 1
320 | file_error (extern_filename);
| ^~~~~~~~~~ ~~~~~~~~~~~~~~~
mkbuiltins.c:206:6: note: declared here
206 | void file_error ();
| ^~~~~~~~~~
mkbuiltins.c:324:7: error: too many arguments to function 'write_file_headers'; expected 0, have 2
324 | write_file_headers (structfile, externfile);
| ^~~~~~~~~~~~~~~~~~ ~~~~~~~~~~
mkbuiltins.c:209:6: note: declared here
209 | void write_file_headers ();
| ^~~~~~~~~~~~~~~~~~
mkbuiltins.c:341:7: error: too many arguments to function 'extract_info'; expected 0, have 3
341 | extract_info (arg, structfile, externfile);
| ^~~~~~~~~~~~ ~~~
mkbuiltins.c:204:6: note: declared here
204 | void extract_info ();
| ^~~~~~~~~~~~
mkbuiltins.c:348:7: error: too many arguments to function 'write_file_footers'; expected 0, have 2
348 | write_file_footers (structfile, externfile);
| ^~~~~~~~~~~~~~~~~~ ~~~~~~~~~~
mkbuiltins.c:210:6: note: declared here
210 | void write_file_footers ();
| ^~~~~~~~~~~~~~~~~~
mkbuiltins.c:352:11: error: too many arguments to function 'write_longdocs'; expected 0, have 2
352 | write_longdocs (structfile, saved_builtins);
| ^~~~~~~~~~~~~~ ~~~~~~~~~~
mkbuiltins.c:214:6: note: declared here
214 | void write_longdocs ();
| ^~~~~~~~~~~~~~
mkbuiltins.c: In function 'array_create':
mkbuiltins.c:387:1: warning: old-style function definition [-Wold-style-definition]
387 | array_create (width)
| ^~~~~~~~~~~~
mkbuiltins.c:392:20: error: too many arguments to function 'xmalloc'; expected 0, have 1
392 | array = (ARRAY *)xmalloc (sizeof (ARRAY));
| ^~~~~~~ ~~~~~~~~~~~~~~
mkbuiltins.c:62:14: note: declared here
62 | static char *xmalloc (), *xrealloc ();
| ^~~~~~~
mkbuiltins.c: In function 'copy_string_array':
mkbuiltins.c:407:1: warning: old-style function definition [-Wold-style-definition]
407 | copy_string_array (array)
| ^~~~~~~~~~~~~~~~~
mkbuiltins.c:422:26: error: too many arguments to function 'xmalloc'; expected 0, have 1
422 | copy->array = (char **)xmalloc ((1 + array->sindex) * sizeof (char *));
| ^~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mkbuiltins.c:62:14: note: declared here
62 | static char *xmalloc (), *xrealloc ();
| ^~~~~~~
mkbuiltins.c:68:31: error: too many arguments to function 'xmalloc'; expected 0, have 1
68 | #define savestring(x) strcpy (xmalloc (1 + strlen (x)), (x))
| ^~~~~~~ ~~~~~~~~~~~~~~
mkbuiltins.c:425:22: note: in expansion of macro 'savestring'
425 | copy->array[i] = savestring (array->array[i]);
| ^~~~~~~~~~
mkbuiltins.c:62:14: note: declared here
62 | static char *xmalloc (), *xrealloc ();
| ^~~~~~~
mkbuiltins.c: In function 'array_add':
mkbuiltins.c:434:1: warning: old-style function definition [-Wold-style-definition]
434 | array_add (element, array)
| ^~~~~~~~~
mkbuiltins.c:439:29: error: too many arguments to function 'xrealloc'; expected 0, have 2
439 | array->array = (char **)xrealloc
| ^~~~~~~~
440 | (array->array, (array->size += array->growth_rate) * array->width);
| ~~~~~~~~~~~~
mkbuiltins.c:62:27: note: declared here
62 | static char *xmalloc (), *xrealloc ();
| ^~~~~~~~
mkbuiltins.c: In function 'array_free':
mkbuiltins.c:448:1: warning: old-style function definition [-Wold-style-definition]
448 | array_free (array)
| ^~~~~~~~~~
mkbuiltins.c: In function 'find_directive':
mkbuiltins.c:497:1: warning: old-style function definition [-Wold-style-definition]
497 | find_directive (directive)
| ^~~~~~~~~~~~~~
mkbuiltins.c: In function 'extract_info':
mkbuiltins.c:527:1: warning: old-style function definition [-Wold-style-definition]
527 | extract_info (filename, structfile, externfile)
| ^~~~~~~~~~~~
mkbuiltins.c:530:1: error: number of arguments doesn't match prototype
530 | {
| ^
mkbuiltins.c:204:6: error: prototype declaration
204 | void extract_info ();
| ^~~~~~~~~~~~
mkbuiltins.c:539:5: error: too many arguments to function 'file_error'; expected 0, have 1
539 | file_error (filename);
| ^~~~~~~~~~ ~~~~~~~~
mkbuiltins.c:206:6: note: declared here
206 | void file_error ();
| ^~~~~~~~~~
mkbuiltins.c:544:5: error: too many arguments to function 'file_error'; expected 0, have 1
544 | file_error (filename);
| ^~~~~~~~~~ ~~~~~~~~
mkbuiltins.c:206:6: note: declared here
206 | void file_error ();
| ^~~~~~~~~~
mkbuiltins.c:547:12: error: too many arguments to function 'xmalloc'; expected 0, have 1
547 | buffer = xmalloc (1 + file_size);
| ^~~~~~~ ~~~~~~~~~~~~~
mkbuiltins.c:62:14: note: declared here
62 | static char *xmalloc (), *xrealloc ();
| ^~~~~~~
mkbuiltins.c:550:5: error: too many arguments to function 'file_error'; expected 0, have 1
550 | file_error (filename);
| ^~~~~~~~~~ ~~~~~~~~
mkbuiltins.c:206:6: note: declared here
206 | void file_error ();
| ^~~~~~~~~~
mkbuiltins.c:566:22: error: too many arguments to function 'xmalloc'; expected 0, have 1
566 | defs = (DEF_FILE *)xmalloc (sizeof (DEF_FILE));
| ^~~~~~~ ~~~~~~~~~~~~~~~~~
mkbuiltins.c:62:14: note: declared here
62 | static char *xmalloc (), *xrealloc ();
| ^~~~~~~
mkbuiltins.c:603:23: error: too many arguments to function 'xmalloc'; expected 0, have 1
603 | directive = xmalloc (j);
| ^~~~~~~ ~
mkbuiltins.c:62:14: note: declared here
62 | static char *xmalloc (), *xrealloc ();
| ^~~~~~~
mkbuiltins.c:612:15: error: too many arguments to function 'line_error'; expected 0, have 3
612 | line_error (defs, "Unknown directive `%s'", directive);
| ^~~~~~~~~~ ~~~~
mkbuiltins.c:207:6: note: declared here
207 | void line_error ();
| ^~~~~~~~~~
mkbuiltins.c:630:13: error: too many arguments to function 'add_documentation'; expected 0, have 2
630 | add_documentation (defs, line);
| ^~~~~~~~~~~~~~~~~ ~~~~
mkbuiltins.c:220:6: note: declared here
220 | void add_documentation ();
| ^~~~~~~~~~~~~~~~~
mkbuiltins.c:660:3: error: too many arguments to function 'write_builtins'; expected 0, have 3
660 | write_builtins (defs, structfile, externfile);
| ^~~~~~~~~~~~~~ ~~~~
mkbuiltins.c:215:6: note: declared here
215 | void write_builtins ();
| ^~~~~~~~~~~~~~
mkbuiltins.c:663:3: error: too many arguments to function 'free_defs'; expected 0, have 1
663 | free_defs (defs);
| ^~~~~~~~~ ~~~~
mkbuiltins.c:219:6: note: declared here
219 | void free_defs ();
| ^~~~~~~~~
mkbuiltins.c: In function 'free_builtin':
mkbuiltins.c:669:1: warning: old-style function definition [-Wold-style-definition]
669 | free_builtin (builtin)
| ^~~~~~~~~~~~
mkbuiltins.c: In function 'free_defs':
mkbuiltins.c:692:1: warning: old-style function definition [-Wold-style-definition]
692 | free_defs (defs)
| ^~~~~~~~~
mkbuiltins.c:694:1: error: number of arguments doesn't match prototype
694 | {
| ^
mkbuiltins.c:219:6: error: prototype declaration
219 | void free_defs ();
| ^~~~~~~~~
mkbuiltins.c: In function 'strip_whitespace':
mkbuiltins.c:725:1: warning: old-style function definition [-Wold-style-definition]
725 | strip_whitespace (string)
| ^~~~~~~~~~~~~~~~
mkbuiltins.c:731:3: error: too many arguments to function 'remove_trailing_whitespace'; expected 0, have 1
731 | remove_trailing_whitespace (string);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~
mkbuiltins.c:223:6: note: declared here
223 | void remove_trailing_whitespace ();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
mkbuiltins.c: In function 'remove_trailing_whitespace':
mkbuiltins.c:737:1: warning: old-style function definition [-Wold-style-definition]
737 | remove_trailing_whitespace (string)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
mkbuiltins.c:739:1: error: number of arguments doesn't match prototype
739 | {
| ^
mkbuiltins.c:223:6: error: prototype declaration
223 | void remove_trailing_whitespace ();
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
mkbuiltins.c: In function 'get_arg':
mkbuiltins.c:755:1: warning: old-style function definition [-Wold-style-definition]
755 | get_arg (for_whom, defs, string)
| ^~~~~~~
mkbuiltins.c:764:5: error: too many arguments to function 'line_error'; expected 0, have 3
764 | line_error (defs, "%s requires an argument", for_whom);
| ^~~~~~~~~~ ~~~~
mkbuiltins.c:207:6: note: declared here
207 | void line_error ();
| ^~~~~~~~~~
mkbuiltins.c:68:31: error: too many arguments to function 'xmalloc'; expected 0, have 1
68 | #define savestring(x) strcpy (xmalloc (1 + strlen (x)), (x))
| ^~~~~~~ ~~~~~~~~~~~~~~
mkbuiltins.c:766:11: note: in expansion of macro 'savestring'
766 | return (savestring (new));
| ^~~~~~~~~~
mkbuiltins.c:62:14: note: declared here
62 | static char *xmalloc (), *xrealloc ();
| ^~~~~~~
mkbuiltins.c: In function 'must_be_building':
mkbuiltins.c:771:1: warning: old-style function definition [-Wold-style-definition]
771 | must_be_building (directive, defs)
| ^~~~~~~~~~~~~~~~
mkbuiltins.c:774:1: error: number of arguments doesn't match prototype
774 | {
| ^
mkbuiltins.c:222:6: error: prototype declaration
222 | void must_be_building ();
| ^~~~~~~~~~~~~~~~
mkbuiltins.c:776:5: error: too many arguments to function 'line_error'; expected 0, have 3
776 | line_error (defs, "%s must be inside of a $BUILTIN block", directive);
| ^~~~~~~~~~ ~~~~
mkbuiltins.c:207:6: note: declared here
207 | void line_error ();
| ^~~~~~~~~~
mkbuiltins.c: In function 'current_builtin':
mkbuiltins.c:781:1: warning: old-style function definition [-Wold-style-definition]
781 | current_builtin (directive, defs)
| ^~~~~~~~~~~~~~~
mkbuiltins.c:785:3: error: too many arguments to function 'must_be_building'; expected 0, have 2
785 | must_be_building (directive, defs);
| ^~~~~~~~~~~~~~~~ ~~~~~~~~~
mkbuiltins.c:771:1: note: declared here
771 | must_be_building (directive, defs)
| ^~~~~~~~~~~~~~~~
mkbuiltins.c: In function 'add_documentation':
mkbuiltins.c:795:1: warning: old-style function definition [-Wold-style-definition]
795 | add_documentation (defs, line)
| ^~~~~~~~~~~~~~~~~
mkbuiltins.c:798:1: error: number of arguments doesn't match prototype
798 | {
| ^
mkbuiltins.c:220:6: error: prototype declaration
220 | void add_documentation ();
| ^~~~~~~~~~~~~~~~~
mkbuiltins.c:803:3: error: too many arguments to function 'remove_trailing_whitespace'; expected 0, have 1
803 | remove_trailing_whitespace (line);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~
mkbuiltins.c:737:1: note: declared here
737 | remove_trailing_whitespace (string)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
mkbuiltins.c: In function 'builtin_handler':
mkbuiltins.c:816:1: warning: old-style function definition [-Wold-style-definition]
816 | builtin_handler (self, defs, arg)
| ^~~~~~~~~~~~~~~
mkbuiltins.c:827:7: error: too many arguments to function 'line_error'; expected 0, have 3
827 | line_error (defs, "%s found before $END", self);
| ^~~~~~~~~~ ~~~~
mkbuiltins.c:207:6: note: declared here
207 | void line_error ();
| ^~~~~~~~~~
mkbuiltins.c:840:25: error: too many arguments to function 'xmalloc'; expected 0, have 1
840 | new = (BUILTIN_DESC *)xmalloc (sizeof (BUILTIN_DESC));
| ^~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
mkbuiltins.c:62:14: note: declared here
62 | static char *xmalloc (), *xrealloc ();
| ^~~~~~~
mkbuiltins.c:849:7: error: too many arguments to function 'is_special_builtin'; expected 0, have 1
849 | if (is_special_builtin (name))
| ^~~~~~~~~~~~~~~~~~ ~~~~
mkbuiltins.c:194:12: note: declared here
194 | static int is_special_builtin ();
| ^~~~~~~~~~~~~~~~~~
mkbuiltins.c:851:7: error: too many arguments to function 'is_assignment_builtin'; expected 0, have 1
851 | if (is_assignment_builtin (name))
| ^~~~~~~~~~~~~~~~~~~~~ ~~~~
mkbuiltins.c:195:12: note: declared here
195 | static int is_assignment_builtin ();
| ^~~~~~~~~~~~~~~~~~~~~
mkbuiltins.c:853:7: error: too many arguments to function 'is_localvar_builtin'; expected 0, have 1
853 | if (is_localvar_builtin (name))
| ^~~~~~~~~~~~~~~~~~~ ~~~~
mkbuiltins.c:196:12: note: declared here
196 | static int is_localvar_builtin ();
| ^~~~~~~~~~~~~~~~~~~
mkbuiltins.c:855:7: error: too many arguments to function 'is_posix_builtin'; expected 0, have 1
855 | if (is_posix_builtin (name))
| ^~~~~~~~~~~~~~~~ ~~~~
mkbuiltins.c:197:12: note: declared here
197 | static int is_posix_builtin ();
| ^~~~~~~~~~~~~~~~
mkbuiltins.c:857:7: error: too many arguments to function 'is_arrayvar_builtin'; expected 0, have 1
857 | if (is_arrayvar_builtin (name))
| ^~~~~~~~~~~~~~~~~~~ ~~~~
mkbuiltins.c:198:12: note: declared here
198 | static int is_arrayvar_builtin ();
| ^~~~~~~~~~~~~~~~~~~
mkbuiltins.c: In function 'function_handler':
mkbuiltins.c:868:1: warning: old-style function definition [-Wold-style-definition]
868 | function_handler (self, defs, arg)
| ^~~~~~~~~~~~~~~~
mkbuiltins.c:879:7: error: too many arguments to function 'line_error'; expected 0, have 2
879 | line_error (defs, "syntax error: no current builtin for $FUNCTION directive");
| ^~~~~~~~~~ ~~~~
mkbuiltins.c:207:6: note: declared here
207 | void line_error ();
| ^~~~~~~~~~
mkbuiltins.c:883:5: error: too many arguments to function 'line_error'; expected 0, have 4
883 | line_error (defs, "%s already has a function (%s)",
| ^~~~~~~~~~ ~~~~
mkbuiltins.c:207:6: note: declared here
207 | void line_error ();
| ^~~~~~~~~~
mkbuiltins.c: In function 'docname_handler':
mkbuiltins.c:893:1: warning: old-style function definition [-Wold-style-definition]
893 | docname_handler (self, defs, arg)
| ^~~~~~~~~~~~~~~
mkbuiltins.c:903:5: error: too many arguments to function 'line_error'; expected 0, have 4
903 | line_error (defs, "%s already had a docname (%s)",
| ^~~~~~~~~~ ~~~~
mkbuiltins.c:207:6: note: declared here
207 | void line_error ();
| ^~~~~~~~~~
mkbuiltins.c: In function 'short_doc_handler':
mkbuiltins.c:913:1: warning: old-style function definition [-Wold-style-definition]
913 | short_doc_handler (self, defs, arg)
| ^~~~~~~~~~~~~~~~~
mkbuiltins.c:923:5: error: too many arguments to function 'line_error'; expected 0, have 4
923 | line_error (defs, "%s already has short documentation (%s)",
| ^~~~~~~~~~ ~~~~
mkbuiltins.c:207:6: note: declared here
207 | void line_error ();
| ^~~~~~~~~~
mkbuiltins.c: In function 'comment_handler':
mkbuiltins.c:933:1: warning: old-style function definition [-Wold-style-definition]
933 | comment_handler (self, defs, arg)
| ^~~~~~~~~~~~~~~
mkbuiltins.c: In function 'depends_on_handler':
mkbuiltins.c:943:1: warning: old-style function definition [-Wold-style-definition]
943 | depends_on_handler (self, defs, arg)
| ^~~~~~~~~~~~~~~~~~
mkbuiltins.c: In function 'produces_handler':
mkbuiltins.c:964:1: warning: old-style function definition [-Wold-style-definition]
964 | produces_handler (self, defs, arg)
| ^~~~~~~~~~~~~~~~
mkbuiltins.c:977:5: error: too many arguments to function 'line_error'; expected 0, have 4
977 | line_error (defs, "%s already has a %s definition", defs->filename, self);
| ^~~~~~~~~~ ~~~~
mkbuiltins.c:207:6: note: declared here
207 | void line_error ();
| ^~~~~~~~~~
mkbuiltins.c:988:9: error: too many arguments to function 'file_error'; expected 0, have 1
988 | file_error (defs->production);
| ^~~~~~~~~~ ~~~~~~~~~~~~~~~~
mkbuiltins.c:206:6: note: declared here
206 | void file_error ();
| ^~~~~~~~~~
mkbuiltins.c: In function 'end_handler':
mkbuiltins.c:998:1: warning: old-style function definition [-Wold-style-definition]
998 | end_handler (self, defs, arg)
| ^~~~~~~~~~~
mkbuiltins.c:1003:3: error: too many arguments to function 'must_be_building'; expected 0, have 2
1003 | must_be_building (self, defs);
| ^~~~~~~~~~~~~~~~ ~~~~
mkbuiltins.c:771:1: note: declared here
771 | must_be_building (directive, defs)
| ^~~~~~~~~~~~~~~~
mkbuiltins.c: In function 'line_error':
mkbuiltins.c:1016:1: warning: old-style function definition [-Wold-style-definition]
1016 | line_error (defs, format, arg1, arg2)
| ^~~~~~~~~~
mkbuiltins.c:1019:1: error: number of arguments doesn't match prototype
1019 | {
| ^
mkbuiltins.c:207:6: error: prototype declaration
207 | void line_error ();
| ^~~~~~~~~~
mkbuiltins.c: In function 'file_error':
mkbuiltins.c:1030:1: warning: old-style function definition [-Wold-style-definition]
1030 | file_error (filename)
| ^~~~~~~~~~
mkbuiltins.c:1032:1: error: number of arguments doesn't match prototype
1032 | {
| ^
mkbuiltins.c:206:6: error: prototype declaration
206 | void file_error ();
| ^~~~~~~~~~
mkbuiltins.c: In function 'xmalloc':
mkbuiltins.c:1046:1: warning: old-style function definition [-Wold-style-definition]
1046 | xmalloc (bytes)
| ^~~~~~~
mkbuiltins.c: In function 'xrealloc':
mkbuiltins.c:1057:1: warning: old-style function definition [-Wold-style-definition]
1057 | xrealloc (pointer, bytes)
| ^~~~~~~~
mkbuiltins.c: In function 'copy_builtin':
mkbuiltins.c:1090:1: warning: old-style function definition [-Wold-style-definition]
1090 | copy_builtin (builtin)
| ^~~~~~~~~~~~
mkbuiltins.c:1095:25: error: too many arguments to function 'xmalloc'; expected 0, have 1
1095 | new = (BUILTIN_DESC *)xmalloc (sizeof (BUILTIN_DESC));
| ^~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
mkbuiltins.c:1046:1: note: declared here
1046 | xmalloc (bytes)
| ^~~~~~~
mkbuiltins.c:68:31: error: too many arguments to function 'xmalloc'; expected 0, have 1
68 | #define savestring(x) strcpy (xmalloc (1 + strlen (x)), (x))
| ^~~~~~~ ~~~~~~~~~~~~~~
mkbuiltins.c:1097:15: note: in expansion of macro 'savestring'
1097 | new->name = savestring (builtin->name);
| ^~~~~~~~~~
mkbuiltins.c:1046:1: note: declared here
1046 | xmalloc (bytes)
| ^~~~~~~
mkbuiltins.c:68:31: error: too many arguments to function 'xmalloc'; expected 0, have 1
68 | #define savestring(x) strcpy (xmalloc (1 + strlen (x)), (x))
| ^~~~~~~ ~~~~~~~~~~~~~~
mkbuiltins.c:1098:19: note: in expansion of macro 'savestring'
1098 | new->shortdoc = savestring (builtin->shortdoc);
| ^~~~~~~~~~
mkbuiltins.c:1046:1: note: declared here
1046 | xmalloc (bytes)
| ^~~~~~~
mkbuiltins.c:68:31: error: too many arguments to function 'xmalloc'; expected 0, have 1
68 | #define savestring(x) strcpy (xmalloc (1 + strlen (x)), (x))
| ^~~~~~~ ~~~~~~~~~~~~~~
mkbuiltins.c:1103:25: note: in expansion of macro 'savestring'
1103 | builtin->function ? savestring (builtin->function) : (char *)NULL;
| ^~~~~~~~~~
mkbuiltins.c:1046:1: note: declared here
1046 | xmalloc (bytes)
| ^~~~~~~
mkbuiltins.c:68:31: error: too many arguments to function 'xmalloc'; expected 0, have 1
68 | #define savestring(x) strcpy (xmalloc (1 + strlen (x)), (x))
| ^~~~~~~ ~~~~~~~~~~~~~~
mkbuiltins.c:1105:25: note: in expansion of macro 'savestring'
1105 | builtin->docname ? savestring (builtin->docname) : (char *)NULL;
| ^~~~~~~~~~
mkbuiltins.c:1046:1: note: declared here
1046 | xmalloc (bytes)
| ^~~~~~~
mkbuiltins.c: In function 'save_builtin':
mkbuiltins.c:1112:1: warning: old-style function definition [-Wold-style-definition]
1112 | save_builtin (builtin)
| ^~~~~~~~~~~~
mkbuiltins.c: In function 'write_file_headers':
mkbuiltins.c:1190:1: warning: old-style function definition [-Wold-style-definition]
1190 | write_file_headers (structfile, externfile)
| ^~~~~~~~~~~~~~~~~~
mkbuiltins.c:1192:1: error: number of arguments doesn't match prototype
1192 | {
| ^
mkbuiltins.c:209:6: error: prototype declaration
209 | void write_file_headers ();
| ^~~~~~~~~~~~~~~~~~
mkbuiltins.c: In function 'write_file_footers':
mkbuiltins.c:1217:1: warning: old-style function definition [-Wold-style-definition]
1217 | write_file_footers (structfile, externfile)
| ^~~~~~~~~~~~~~~~~~
mkbuiltins.c:1219:1: error: number of arguments doesn't match prototype
1219 | {
| ^
mkbuiltins.c:210:6: error: prototype declaration
210 | void write_file_footers ();
| ^~~~~~~~~~~~~~~~~~
mkbuiltins.c: In function 'write_builtins':
mkbuiltins.c:1233:1: warning: old-style function definition [-Wold-style-definition]
1233 | write_builtins (defs, structfile, externfile)
| ^~~~~~~~~~~~~~
mkbuiltins.c:1236:1: error: number of arguments doesn't match prototype
1236 | {
| ^
mkbuiltins.c:215:6: error: prototype declaration
215 | void write_builtins ();
| ^~~~~~~~~~~~~~
mkbuiltins.c:1253:19: error: too many arguments to function 'write_ifdefs'; expected 0, have 2
1253 | write_ifdefs (externfile, builtin->dependencies->array);
| ^~~~~~~~~~~~ ~~~~~~~~~~
mkbuiltins.c:211:6: note: declared here
211 | void write_ifdefs ();
| ^~~~~~~~~~~~
mkbuiltins.c:1254:19: error: too many arguments to function 'write_ifdefs'; expected 0, have 2
1254 | write_ifdefs (structfile, builtin->dependencies->array);
| ^~~~~~~~~~~~ ~~~~~~~~~~
mkbuiltins.c:211:6: note: declared here
211 | void write_ifdefs ();
| ^~~~~~~~~~~~
mkbuiltins.c:1320:21: error: too many arguments to function 'write_endifs'; expected 0, have 2
1320 | write_endifs (externfile, builtin->dependencies->array);
| ^~~~~~~~~~~~ ~~~~~~~~~~
mkbuiltins.c:212:6: note: declared here
212 | void write_endifs ();
| ^~~~~~~~~~~~
mkbuiltins.c:1323:21: error: too many arguments to function 'write_endifs'; expected 0, have 2
1323 | write_endifs (structfile, builtin->dependencies->array);
| ^~~~~~~~~~~~ ~~~~~~~~~~
mkbuiltins.c:212:6: note: declared here
212 | void write_endifs ();
| ^~~~~~~~~~~~
mkbuiltins.c:1330:15: error: too many arguments to function 'write_documentation'; expected 0, have 4
1330 | write_documentation
| ^~~~~~~~~~~~~~~~~~~
1331 | (documentation_file, builtin->longdoc->array, 0, TEXINFO);
| ~~~~~~~~~~~~~~~~~~
mkbuiltins.c:213:6: note: declared here
213 | void write_documentation ();
| ^~~~~~~~~~~~~~~~~~~
mkbuiltins.c: In function 'write_longdocs':
mkbuiltins.c:1339:1: warning: old-style function definition [-Wold-style-definition]
1339 | write_longdocs (stream, builtins)
| ^~~~~~~~~~~~~~
mkbuiltins.c:1342:1: error: number of arguments doesn't match prototype
1342 | {
| ^
mkbuiltins.c:214:6: error: prototype declaration
214 | void write_longdocs ();
| ^~~~~~~~~~~~~~
mkbuiltins.c:1353:9: error: too many arguments to function 'write_ifdefs'; expected 0, have 2
1353 | write_ifdefs (stream, builtin->dependencies->array);
| ^~~~~~~~~~~~ ~~~~~~
mkbuiltins.c:211:6: note: declared here
211 | void write_ifdefs ();
| ^~~~~~~~~~~~
mkbuiltins.c:1362:31: error: too many arguments to function 'xmalloc'; expected 0, have 1
1362 | sarray[0] = (char *)xmalloc (l + 1);
| ^~~~~~~ ~~~~~
mkbuiltins.c:1046:1: note: declared here
1046 | xmalloc (bytes)
| ^~~~~~~
mkbuiltins.c:1365:11: error: too many arguments to function 'write_documentation'; expected 0, have 4
1365 | write_documentation (stream, sarray, 0, STRING_ARRAY|HELPFILE);
| ^~~~~~~~~~~~~~~~~~~ ~~~~~~
mkbuiltins.c:213:6: note: declared here
213 | void write_documentation ();
| ^~~~~~~~~~~~~~~~~~~
mkbuiltins.c:1369:9: error: too many arguments to function 'write_documentation'; expected 0, have 4
1369 | write_documentation (stream, builtin->longdoc->array, 0, STRING_ARRAY);
| ^~~~~~~~~~~~~~~~~~~ ~~~~~~
mkbuiltins.c:213:6: note: declared here
213 | void write_documentation ();
| ^~~~~~~~~~~~~~~~~~~
mkbuiltins.c:1372:9: error: too many arguments to function 'write_endifs'; expected 0, have 2
1372 | write_endifs (stream, builtin->dependencies->array);
| ^~~~~~~~~~~~ ~~~~~~
mkbuiltins.c:212:6: note: declared here
212 | void write_endifs ();
| ^~~~~~~~~~~~
mkbuiltins.c: In function 'write_dummy_declarations':
mkbuiltins.c:1378:1: warning: old-style function definition [-Wold-style-definition]
1378 | write_dummy_declarations (stream, builtins)
| ^~~~~~~~~~~~~~~~~~~~~~~~
mkbuiltins.c: In function 'write_ifdefs':
mkbuiltins.c:1404:1: warning: old-style function definition [-Wold-style-definition]
1404 | write_ifdefs (stream, defines)
| ^~~~~~~~~~~~
mkbuiltins.c:1407:1: error: number of arguments doesn't match prototype
1407 | {
| ^
mkbuiltins.c:211:6: error: prototype declaration
211 | void write_ifdefs ();
| ^~~~~~~~~~~~
mkbuiltins.c: In function 'write_endifs':
mkbuiltins.c:1435:1: warning: old-style function definition [-Wold-style-definition]
1435 | write_endifs (stream, defines)
| ^~~~~~~~~~~~
mkbuiltins.c:1438:1: error: number of arguments doesn't match prototype
1438 | {
| ^
mkbuiltins.c:212:6: error: prototype declaration
212 | void write_endifs ();
| ^~~~~~~~~~~~
mkbuiltins.c: In function 'write_documentation':
mkbuiltins.c:1462:1: warning: old-style function definition [-Wold-style-definition]
1462 | write_documentation (stream, documentation, indentation, flags)
| ^~~~~~~~~~~~~~~~~~~
mkbuiltins.c:1466:1: error: number of arguments doesn't match prototype
1466 | {
| ^
mkbuiltins.c:213:6: error: prototype declaration
213 | void write_documentation ();
| ^~~~~~~~~~~~~~~~~~~
mkbuiltins.c: In function 'write_helpfiles':
mkbuiltins.c:1593:1: warning: old-style function definition [-Wold-style-definition]
1593 | write_helpfiles (builtins)
| ^~~~~~~~~~~~~~~
mkbuiltins.c:1595:1: error: number of arguments doesn't match prototype
1595 | {
| ^
mkbuiltins.c:217:5: error: prototype declaration
217 | int write_helpfiles ();
| ^~~~~~~~~~~~~~~
mkbuiltins.c:1614:26: error: too many arguments to function 'xmalloc'; expected 0, have 1
1614 | helpfile = (char *)xmalloc (hdlen + strlen (bname) + 1);
| ^~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~
mkbuiltins.c:1046:1: note: declared here
1046 | xmalloc (bytes)
| ^~~~~~~
mkbuiltins.c:1625:7: error: too many arguments to function 'write_documentation'; expected 0, have 4
1625 | write_documentation (helpfp, builtin->longdoc->array, 4, PLAINTEXT);
| ^~~~~~~~~~~~~~~~~~~ ~~~~~~
mkbuiltins.c:1462:1: note: declared here
1462 | write_documentation (stream, documentation, indentation, flags)
| ^~~~~~~~~~~~~~~~~~~
mkbuiltins.c: In function '_find_in_table':
mkbuiltins.c:1635:1: warning: old-style function definition [-Wold-style-definition]
1635 | _find_in_table (name, name_table)
| ^~~~~~~~~~~~~~
mkbuiltins.c: In function 'is_special_builtin':
mkbuiltins.c:1647:1: warning: old-style function definition [-Wold-style-definition]
1647 | is_special_builtin (name)
| ^~~~~~~~~~~~~~~~~~
mkbuiltins.c: In function 'is_assignment_builtin':
mkbuiltins.c:1654:1: warning: old-style function definition [-Wold-style-definition]
1654 | is_assignment_builtin (name)
| ^~~~~~~~~~~~~~~~~~~~~
mkbuiltins.c: In function 'is_localvar_builtin':
mkbuiltins.c:1661:1: warning: old-style function definition [-Wold-style-definition]
1661 | is_localvar_builtin (name)
| ^~~~~~~~~~~~~~~~~~~
mkbuiltins.c: In function 'is_posix_builtin':
mkbuiltins.c:1668:1: warning: old-style function definition [-Wold-style-definition]
1668 | is_posix_builtin (name)
| ^~~~~~~~~~~~~~~~
mkbuiltins.c: In function 'is_arrayvar_builtin':
mkbuiltins.c:1675:1: warning: old-style function definition [-Wold-style-definition]
1675 | is_arrayvar_builtin (name)
| ^~~~~~~~~~~~~~~~~~~
make[3]: *** [Makefile:223: mkbuiltins.o] Error 1
make[3]: Leaving directory '/home/oct1158/Documents/Code/C/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/build/bash-5.2.15/builtins'
make[2]: *** [Makefile:762: builtins/builtext.h] Error 1
make[2]: Leaving directory '/home/oct1158/Documents/Code/C/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/build/bash-5.2.15'
make[1]: *** [package/pkg-generic.mk:293: /home/oct1158/Documents/Code/C/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/build/bash-5.2.15/.stamp_built] Error 2
make[1]: Leaving directory '/home/oct1158/Documents/Code/C/luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6'
make: *** [Makefile:618: buildroot] Error 2
make: Leaving directory '/home/oct1158/Documents/Code/C/luckfox-pico/sysdrv'
[build.sh:error] Running build_rootfs failed!
[build.sh:error] exit code 2 from line 858:
[build.sh:info] make rootfs -C ${SDK_SYSDRV_DIR}
[oct1158@fed41-bh8f7e0 luckfox-pico]$
解决方案:
打开sysdrv/source/buildroot/buildroot-2023.02.6/output/build/bash-5.2.15/builtins/mkbuiltins.c
将下面这些行修改正确。
行 62: static char *xmalloc (int bytes), *xrealloc (char *pointer, int bytes);
行 194: static int is_special_builtin (char *name);
行 195: static int is_assignment_builtin (char *name);
行 196: static int is_localvar_builtin (char *name);
行 197: static int is_posix_builtin (char *name);
行 198: static int is_arrayvar_builtin (char *name);
行 204: void extract_info (char *filename, FILE *structfile, FILE *externfile);
行 206: void file_error (char *filename);
行 207: void line_error (DEF_FILE *defs, char *format, ...);
行 209: void write_file_headers (FILE *structfile, FILE *externfile);
行 210: void write_file_footers (FILE *structfile, FILE *externfile);
行 211: void write_ifdefs (FILE *stream, char **defines);
行 212: void write_endifs (FILE *stream, char **defines);
行 213: void write_documentation (FILE *stream, char **documentation, int indentation, int flags);
行 214: void write_longdocs (FILE *stream, ARRAY *builtins);
行 215: void write_builtins (DEF_FILE *defs, FILE *structfile, FILE *externfile);
行 217: int write_helpfiles (ARRAY *builtins);
行 219: void free_defs (DEF_FILE *defs);
行 220: void add_documentation (DEF_FILE *defs, char *line);
行 222: void must_be_building (char *directive, DEF_FILE *defs);
行 223: void remove_trailing_whitespace (char *string);
第439-440行:
在第一个参数前加上(void *)
array->array = (char **)xrealloc
((void *)array->array, (array->size += array->growth_rate) * array->width);
第1014-1026行:
/* Produce an error for DEFS with FORMAT and ARGS. */
#include <stdarg.h>
void
line_error (DEF_FILE *defs, char *format, ...)
{
va_list list;
if (defs->filename[0] != '/')
fprintf (stderr, "%s", error_directory ? error_directory : "./");
fprintf (stderr, "%s:%d:", defs->filename, defs->line_number + 1);
va_start(list, format);
vfprintf (stderr, format, list);
va_end(list);
fprintf (stderr, "\n");
fflush (stderr);
}