summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/firmware.scm3
-rw-r--r--gnu/packages/patches/ath9k-htc-firmware-gcc-compat.patch29
3 files changed, 32 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 4d9afd5354..cd76ba88cf 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -818,6 +818,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/aspell-default-dict-dir.patch		\
   %D%/packages/patches/ath9k-htc-firmware-binutils.patch	\
   %D%/packages/patches/ath9k-htc-firmware-gcc.patch		\
+  %D%/packages/patches/ath9k-htc-firmware-gcc-compat.patch	\
   %D%/packages/patches/ath9k-htc-firmware-objcopy.patch		\
   %D%/packages/patches/audacity-build-with-system-portaudio.patch \
   %D%/packages/patches/audacity-add-include.patch 		\
diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index c9a68f5a93..ebcb89923c 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -56,7 +56,8 @@
                (base32
                 "16jbj8avg5jkgvq5lxm0hdxxn4c3zn7fx8b4nxllvr024apk9w23"))
               (file-name (git-file-name name version))
-              (patches (search-patches "ath9k-htc-firmware-objcopy.patch"))))
+              (patches (search-patches "ath9k-htc-firmware-objcopy.patch"
+                                       "ath9k-htc-firmware-gcc-compat.patch"))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases
diff --git a/gnu/packages/patches/ath9k-htc-firmware-gcc-compat.patch b/gnu/packages/patches/ath9k-htc-firmware-gcc-compat.patch
new file mode 100644
index 0000000000..ceada2fa24
--- /dev/null
+++ b/gnu/packages/patches/ath9k-htc-firmware-gcc-compat.patch
@@ -0,0 +1,29 @@
+Fixes for compiling with -fno-common, default in GCC 10.
+
+Taken from upstream:
+https://github.com/qca/open-ath9k-htc-firmware/commit/559e3eba3b4cf103da6b8d022f3e1387278b9db8
+
+diff --git a/target_firmware/magpie_fw_dev/target/init/app_start.c b/target_firmware/magpie_fw_dev/target/init/app_start.c
+--- a/target_firmware/magpie_fw_dev/target/init/app_start.c
++++ b/target_firmware/magpie_fw_dev/target/init/app_start.c
+@@ -52,6 +52,8 @@
+ #define ALLOCRAM_START       ( ((unsigned int)&_fw_image_end) + 4)
+ #define ALLOCRAM_SIZE        ( SYS_RAM_SZIE - ( ALLOCRAM_START - SYS_D_RAM_REGION_0_BASE) - SYS_D_RAM_STACK_SIZE)
+ 
++void (* _assfail_ori)(struct register_dump_s *);
++
+ // support for more than 64 bytes on command pipe
+ extern void usb_reg_out_patch(void);
+ extern int _HIFusb_get_max_msg_len_patch(hif_handle_t handle, int pipe);
+diff --git a/target_firmware/magpie_fw_dev/target/init/init.h b/target_firmware/magpie_fw_dev/target/init/init.h
+--- a/target_firmware/magpie_fw_dev/target/init/init.h
++++ b/target_firmware/magpie_fw_dev/target/init/init.h
+@@ -46,7 +46,7 @@
+ void AR6002_fatal_exception_handler_patch(CPU_exception_frame_t *exc_frame);
+ void exception_reset(struct register_dump_s *dump);
+ 
+-void (* _assfail_ori)(struct register_dump_s *);
++extern void (* _assfail_ori)(struct register_dump_s *);
+ void HTCMsgRecvHandler_patch(adf_nbuf_t hdr_buf, adf_nbuf_t buffer, void *context);
+ void HTCControlSvcProcessMsg_patch(HTC_ENDPOINT_ID EndpointID, adf_nbuf_t hdr_buf,
+ 				   adf_nbuf_t pBuffers, void *arg);