Fine, OK, here's my initial AR9380/AR9485 support

Joshua Isom jrisom at gmail.com
Tue Mar 12 22:07:03 UTC 2013


On 3/12/2013 4:14 PM, Adrian Chadd wrote:
> On 12 March 2013 14:12, Joshua Isom <jrisom at gmail.com> wrote:
>> I had to remove the /sys/ from the PATH and CFLAGS to point to the right
>> directory, it's still failing with warnings.  I tried gcc and clang. I'll
>> try to see how much I can patch myself without knowing the code at all.
>
> Hi,
>
> Where's it failing with warnings with gcc?
>
> I do gcc builds all the time and I get no warnings. But my primary
> station/laptop testing atm is on 9-STABLE (my access points run -HEAD
> atm.)
>
> Thanks,
>
>
> Adrian
>

Here's the build log from clang.  The most obvious different things are 
ar9300_gpio.c's comparisons with a constant.

> ===> ath (all)
> cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc  -I. -I/root/ATH/head/sys/modules/ath/../../dev/ath -I/root/ATH/head/sys/modules/ath/../../dev/ath/ath_hal -I. -I/root/ATH/head/sys/modules/ath/../../contrib/dev/ath/ath_hal/ -DHAVE_KERNEL_OPTION_HEADERS -include /usr/obj/root/ATH/head/sys/ATH/opt_global.h -I. -I@ -I@/contrib/altq -fno-common -g -fno-omit-frame-pointer -I/usr/obj/root/ATH/head/sys/ATH  -mno-aes -mno-avx -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float  -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -std=iso9899:1999 -Qunused-arguments -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions  -Wmissing-include-dirs -fdiagnostics-show-option  -Wno-error-tautological-compare -Wno-error-empty-body  -Wno-error-parentheses-equality  -c /root/ATH/head/sys/modules/ath/../../contrib/dev/ath/ath
_hal/ar9300/ar9300_radio.c
> cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc  -I. -I/root/ATH/head/sys/modules/ath/../../dev/ath -I/root/ATH/head/sys/modules/ath/../../dev/ath/ath_hal -I. -I/root/ATH/head/sys/modules/ath/../../contrib/dev/ath/ath_hal/ -DHAVE_KERNEL_OPTION_HEADERS -include /usr/obj/root/ATH/head/sys/ATH/opt_global.h -I. -I@ -I@/contrib/altq -fno-common -g -fno-omit-frame-pointer -I/usr/obj/root/ATH/head/sys/ATH  -mno-aes -mno-avx -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float  -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -std=iso9899:1999 -Qunused-arguments -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions  -Wmissing-include-dirs -fdiagnostics-show-option  -Wno-error-tautological-compare -Wno-error-empty-body  -Wno-error-parentheses-equality  -c /root/ATH/head/sys/modules/ath/../../contrib/dev/ath/ath
_hal/ar9300/ar9300_reset.c
> /root/ATH/head/sys/modules/ath/../../contrib/dev/ath/ath_hal/ar9300/ar9300_radio.c:83:27: error: unused variable 'ichan' [-Werror,-Wunused-variable]
>     HAL_CHANNEL_INTERNAL *ichan = ath_hal_checkchannel(ah, chan);
>                           ^
> 1 error generated.
> *** [ar9300_radio.o] Error code 1
> cc -O2 -pipe -fno-strict-aliasing -Werror -D_KERNEL -DKLD_MODULE -nostdinc  -I. -I/root/ATH/head/sys/modules/ath/../../dev/ath -I/root/ATH/head/sys/modules/ath/../../dev/ath/ath_hal -I. -I/root/ATH/head/sys/modules/ath/../../contrib/dev/ath/ath_hal/ -DHAVE_KERNEL_OPTION_HEADERS -include /usr/obj/root/ATH/head/sys/ATH/opt_global.h -I. -I@ -I@/contrib/altq -fno-common -g -fno-omit-frame-pointer -I/usr/obj/root/ATH/head/sys/ATH  -mno-aes -mno-avx -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float  -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -std=iso9899:1999 -Qunused-arguments -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions  -Wmissing-include-dirs -fdiagnostics-show-option  -Wno-error-tautological-compare -Wno-error-empty-body  -Wno-error-parentheses-equality  -c /root/ATH/head/sys/modules/ath/../../contrib/dev/ath/ath
_hal/ar9300/ar9300_gpio.c
> /root/ATH/head/sys/modules/ath/../../contrib/dev/ath/ath_hal/ar9300/ar9300_reset.c:2809:52: error: variable 'modes_txgaintable_index' is uninitialized when used here [-Werror,-Wuninitialized]
>         REG_WRITE_ARRAY(&ahp->ah_ini_modes_txgain, modes_txgaintable_index,
>                                                    ^~~~~~~~~~~~~~~~~~~~~~~
> /root/ATH/head/sys/modules/ath/../../contrib/dev/ath/ath_hal/ar9300/ar9300.h:904:85: note: expanded from macro 'REG_WRITE_ARRAY'
>                 OS_REG_WRITE(ah, INI_RA((iniarray), (r), 0), INI_RA((iniarray), r, (column)));\
>                                                                                     ^
> /root/ATH/head/sys/modules/ath/../../contrib/dev/ath/ath_hal/ar9300/ar9300.h:323:99: note: expanded from macro 'INI_RA'
> #define INI_RA(iniarray, row, column) (((iniarray)->ia_array)[(row) * ((iniarray)->ia_columns) + (column)])
>                                                                                                   ^
> /root/ATH/head/sys/modules/ath/../../dev/ath/ah_osdep.h:119:68: note: expanded from macro 'OS_REG_WRITE'
> #define OS_REG_WRITE(_ah, _reg, _val)   ath_hal_reg_write(_ah, _reg, _val)
>                                                                      ^
> /root/ATH/head/sys/modules/ath/../../contrib/dev/ath/ath_hal/ar9300/ar9300_reset.c:2609:47: note: initialize the variable 'modes_txgaintable_index' to silence this warning
>     u_int modes_index, modes_txgaintable_index, freq_index;
>                                               ^
>                                                = 0
> 1 error generated.
> *** [ar9300_reset.o] Error code 1
> /root/ATH/head/sys/modules/ath/../../contrib/dev/ath/ath_hal/ar9300/ar9300_gpio.c:63:15: error: cast to 'volatile u_int32_t *' (aka 'volatile unsigned int *') from smaller integer type 'unsigned int' [-Werror,-Wint-to-pointer-cast]
>     address = (volatile u_int32_t *)(AR9340_SOC_GPIO_FUN0 + (out_func*4));
>               ^
> /root/ATH/head/sys/modules/ath/../../contrib/dev/ath/ath_hal/ar9300/ar9300_gpio.c:159:25: warning: comparison of constant 20 with expression of type 'HAL_GPIO_MUX_TYPE' is always true [-Wtautological-constant-out-of-range-compare]
>     if (hal_signal_type < ARRAY_LENGTH(mux_signal_conversion_table))
>         ~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /root/ATH/head/sys/modules/ath/../../contrib/dev/ath/ath_hal/ar9300/ar9300_gpio.c:271:23: warning: comparison of constant 20 with expression of type 'HAL_GPIO_MUX_TYPE' is always true [-Wtautological-constant-out-of-range-compare]
>     if (halSignalType < ARRAY_LENGTH(mux_signal_conversion_table))
>         ~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 2 warnings and 1 error generated.
> *** [ar9300_gpio.o] Error code 1
> 3 errors
> `all' not remade because of errors.
> *** [all] Error code 2
> 1 error
> *** [modules-all] Error code 2
> 1 error
> `all' not remade because of errors.
> *** [buildkernel] Error code 2
> 1 error
> *** [buildkernel] Error code 2
> 1 error



More information about the freebsd-wireless mailing list