木马派RV1106G3开发板驱动AIC8800DC USB WiFi模块

板子连线

串口接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);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

巨大八爪鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值