You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Environment: arm ipq806x / netgear r7800, trunk
GCC: 10.x
Trying to compile umbim results in a warning/erorr:
make[3]: Entering directory '/usr/local/src/openwrt/package/network/utils/umbim'
mkdir -p /usr/local/src/openwrt/dl
SHELL= flock /usr/local/src/openwrt/tmp/.umbim-2019-09-11-184b707d.tar.xz.flock -c ' /usr/local/src/openwrt/scripts/download.pl "/usr/local/src/openwrt/dl" "umbim-201
9-09-11-184b707d.tar.xz" "482ff69144f81fafed99035840f5a24e772472f2df2f3ac0219d6de791ac5835" "" || ( echo "Checking out files from the git repository..."; mkdir -p /us
r/local/src/openwrt/tmp/dl && cd /usr/local/src/openwrt/tmp/dl && rm -rf umbim-2019-09-11-184b707d && [ \! -d umbim-2019-09-11-184b707d ] && git clone https://git.openw
rt.org/project/umbim.git umbim-2019-09-11-184b707d && (cd umbim-2019-09-11-184b707d && git checkout 184b707ddaa0acee84d02e0ffe599cb8b67782bd && git submodule update --in
it --recursive) && echo "Packing checkout..." && export TAR_TIMESTAMP=`cd umbim-2019-09-11-184b707d && git log -1 --format='\''@%ct'\''` && rm -rf umbim-2019-09-11-184b7
07d/.git && tar --numeric-owner --owner=0 --group=0 --mode=a-s --sort=name ${TAR_TIMESTAMP:+--mtime="$TAR_TIMESTAMP"} -c umbim-2019-09-11-184b707d | xz -zc
-7e > /usr/local/src/openwrt/tmp/dl/umbim-2019-09-11-184b707d.tar.xz && mv /usr/local/src/openwrt/tmp/dl/umbim-2019-09-11-184b707d.tar.xz /usr/local/src/openwrt/dl/ &&
rm -rf umbim-2019-09-11-184b707d; ) '
touch /usr/local/src/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/umbim-2019-09-11-184b707d/.prepared_d06039bd652ab99df8802435f3362dc7_6664517399ebbbc92a
37c5bb081b5c53_check
. /usr/local/src/openwrt/include/shell.sh; xzcat /usr/local/src/openwrt/dl/umbim-2019-09-11-184b707d.tar.xz | tar -C /usr/local/src/openwrt/build_dir/target-arm_cortex-a
15+neon-vfpv4_musl_eabi/umbim-2019-09-11-184b707d/.. -xf -
[ ! -d ./src/ ] || cp -fpR ./src/. /usr/local/src/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/umbim-2019-09-11-184b707d
touch /usr/local/src/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/umbim-2019-09-11-184b707d/.prepared_d06039bd652ab99df8802435f3362dc7_6664517399ebbbc92a
37c5bb081b5c53
rm -f /usr/local/src/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/umbim-2019-09-11-184b707d/.configured_*
rm -f /usr/local/src/openwrt/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/stamp/.umbim_installed
mkdir -p /usr/local/src/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/umbim-2019-09-11-184b707d
(cd /usr/local/src/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/umbim-2019-09-11-184b707d; CFLAGS="-Os -pipe -fno-caller-saves -fno-plt -fhonour-copts -W
[1/5] Building C object CMakeFiles/umbim.dir/cli.c.o
FAILED: CMakeFiles/umbim.dir/cli.c.o
/usr/local/src/openwrt/staging_dir/toolchain-arm_cortex-a15+neon-vfpv4_gcc-10.3.0_musl_eabi/bin/arm-openwrt-linux-muslgnueabi-gcc -Os -pipe -fno-caller-saves -fno-plt -fhonour-copts -Wno-error=unused-but-set-va
riable -Wno-error=unused-result -mfloat-abi=hard -fmacro-prefix-map=/usr/local/src/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/umbim-2019-09-11-184b707d=umbim-2019-09-11-184b707d -Wformat -Werror
=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -I/usr/local/src/openwrt/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/usr/include -ffunction-sections -fdata-sections -DNDE
BUG -Os -ggdb -Wextra -Wall -Werror --std=gnu99 -Wmissing-declarations -Wno-unused-parameter -MD -MT CMakeFiles/umbim.dir/cli.c.o -MF CMakeFiles/umbim.dir/cli.c.o.d -o CMakeFiles/umbim.dir/cli.c.o -c cli.c
cli.c: In function 'mbim_device_caps_response':
cli.c:55:29: error: taking address of packed member of 'struct mbim_basic_connect_device_caps_r' may result in an unaligned pointer value [-Werror=address-of-packed-member]
55 | deviceid = mbim_get_string(&caps->deviceid, buffer);
| ^~~~~~~~~~~~~~~
cli.c:56:33: error: taking address of packed member of 'struct mbim_basic_connect_device_caps_r' may result in an unaligned pointer value [-Werror=address-of-packed-member]
56 | firmwareinfo = mbim_get_string(&caps->firmwareinfo, buffer);
| ^~~~~~~~~~~~~~~~~~~
cli.c:57:33: error: taking address of packed member of 'struct mbim_basic_connect_device_caps_r' may result in an unaligned pointer value [-Werror=address-of-packed-member]
57 | hardwareinfo = mbim_get_string(&caps->hardwareinfo, buffer);
| ^~~~~~~~~~~~~~~~~~~
cli.c: In function 'mbim_home_provider_response':
cli.c:111:32: error: taking address of packed member of 'struct mbimprovider' may result in an unaligned pointer value [-Werror=address-of-packed-member]
111 | provider_id = mbim_get_string(&provider->providerid, buffer);
| ^~~~~~~~~~~~~~~~~~~~~
cli.c:112:34: error: taking address of packed member of 'struct mbimprovider' may result in an unaligned pointer value [-Werror=address-of-packed-member]
112 | provider_name = mbim_get_string(&provider->providername, buffer);
| ^~~~~~~~~~~~~~~~~~~~~~~
cli.c: In function 'mbim_registration_response':
cli.c:135:32: error: taking address of packed member of 'struct mbim_basic_connect_register_state_r' may result in an unaligned pointer value [-Werror=address-of-packed-member]
135 | provider_id = mbim_get_string(&state->providerid, buffer);
| ^~~~~~~~~~~~~~~~~~
cli.c:136:34: error: taking address of packed member of 'struct mbim_basic_connect_register_state_r' may result in an unaligned pointer value [-Werror=address-of-packed-member]
136 | provider_name = mbim_get_string(&state->providername, buffer);
| ^~~~~~~~~~~~~~~~~~~~
cli.c:137:32: error: taking address of packed member of 'struct mbim_basic_connect_register_state_r' may result in an unaligned pointer value [-Werror=address-of-packed-member]
137 | roamingtext = mbim_get_string(&state->roamingtext, buffer);
| ^~~~~~~~~~~~~~~~~~~
cli.c: In function 'mbim_subscriber_response':
cli.c:171:33: error: taking address of packed member of 'struct mbim_basic_connect_subscriber_ready_status_r' may result in an unaligned pointer value [-Werror=address-of-packed-member]
The text was updated successfully, but these errors were encountered:
Taking the address (pointer to) a member of a structure is unpredictable. There is no guarantee that the type of objects defined in the structure meet architecture alignment rules. ie. there's no guarantee that the 2 signed ints (32 bit) in the string structure are suitably aligned in memory for native cpu access which may require them at 2 or even 4 byte boundaries.
The truly horrible workaround is to pass pointers to a local version of the 'string' structure which is guaranteed to be suitably aligned by the compiler and then copy in/out to final destination in memory.
A suitable patch attached, which compiles for me but is in no way run-time tested.
rektide:
Environment: arm ipq806x / netgear r7800, trunk
GCC: 10.x
Trying to compile umbim results in a warning/erorr:
make[3]: Entering directory '/usr/local/src/openwrt/package/network/utils/umbim' mkdir -p /usr/local/src/openwrt/dl SHELL= flock /usr/local/src/openwrt/tmp/.umbim-2019-09-11-184b707d.tar.xz.flock -c ' /usr/local/src/openwrt/scripts/download.pl "/usr/local/src/openwrt/dl" "umbim-201 9-09-11-184b707d.tar.xz" "482ff69144f81fafed99035840f5a24e772472f2df2f3ac0219d6de791ac5835" "" || ( echo "Checking out files from the git repository..."; mkdir -p /us r/local/src/openwrt/tmp/dl && cd /usr/local/src/openwrt/tmp/dl && rm -rf umbim-2019-09-11-184b707d && [ \! -d umbim-2019-09-11-184b707d ] && git clone https://git.openw rt.org/project/umbim.git umbim-2019-09-11-184b707d && (cd umbim-2019-09-11-184b707d && git checkout 184b707ddaa0acee84d02e0ffe599cb8b67782bd && git submodule update --in it --recursive) && echo "Packing checkout..." && export TAR_TIMESTAMP=`cd umbim-2019-09-11-184b707d && git log -1 --format='\''@%ct'\''` && rm -rf umbim-2019-09-11-184b7 07d/.git && tar --numeric-owner --owner=0 --group=0 --mode=a-s --sort=name ${TAR_TIMESTAMP:+--mtime="$TAR_TIMESTAMP"} -c umbim-2019-09-11-184b707d | xz -zc -7e > /usr/local/src/openwrt/tmp/dl/umbim-2019-09-11-184b707d.tar.xz && mv /usr/local/src/openwrt/tmp/dl/umbim-2019-09-11-184b707d.tar.xz /usr/local/src/openwrt/dl/ && rm -rf umbim-2019-09-11-184b707d; ) ' touch /usr/local/src/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/umbim-2019-09-11-184b707d/.prepared_d06039bd652ab99df8802435f3362dc7_6664517399ebbbc92a 37c5bb081b5c53_check . /usr/local/src/openwrt/include/shell.sh; xzcat /usr/local/src/openwrt/dl/umbim-2019-09-11-184b707d.tar.xz | tar -C /usr/local/src/openwrt/build_dir/target-arm_cortex-a 15+neon-vfpv4_musl_eabi/umbim-2019-09-11-184b707d/.. -xf - [ ! -d ./src/ ] || cp -fpR ./src/. /usr/local/src/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/umbim-2019-09-11-184b707d touch /usr/local/src/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/umbim-2019-09-11-184b707d/.prepared_d06039bd652ab99df8802435f3362dc7_6664517399ebbbc92a 37c5bb081b5c53 rm -f /usr/local/src/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/umbim-2019-09-11-184b707d/.configured_* rm -f /usr/local/src/openwrt/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/stamp/.umbim_installed mkdir -p /usr/local/src/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/umbim-2019-09-11-184b707d (cd /usr/local/src/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/umbim-2019-09-11-184b707d; CFLAGS="-Os -pipe -fno-caller-saves -fno-plt -fhonour-copts -W [1/5] Building C object CMakeFiles/umbim.dir/cli.c.o FAILED: CMakeFiles/umbim.dir/cli.c.o /usr/local/src/openwrt/staging_dir/toolchain-arm_cortex-a15+neon-vfpv4_gcc-10.3.0_musl_eabi/bin/arm-openwrt-linux-muslgnueabi-gcc -Os -pipe -fno-caller-saves -fno-plt -fhonour-copts -Wno-error=unused-but-set-va riable -Wno-error=unused-result -mfloat-abi=hard -fmacro-prefix-map=/usr/local/src/openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/umbim-2019-09-11-184b707d=umbim-2019-09-11-184b707d -Wformat -Werror =format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -I/usr/local/src/openwrt/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/usr/include -ffunction-sections -fdata-sections -DNDE BUG -Os -ggdb -Wextra -Wall -Werror --std=gnu99 -Wmissing-declarations -Wno-unused-parameter -MD -MT CMakeFiles/umbim.dir/cli.c.o -MF CMakeFiles/umbim.dir/cli.c.o.d -o CMakeFiles/umbim.dir/cli.c.o -c cli.c cli.c: In function 'mbim_device_caps_response': cli.c:55:29: error: taking address of packed member of 'struct mbim_basic_connect_device_caps_r' may result in an unaligned pointer value [-Werror=address-of-packed-member] 55 | deviceid = mbim_get_string(&caps->deviceid, buffer); | ^~~~~~~~~~~~~~~ cli.c:56:33: error: taking address of packed member of 'struct mbim_basic_connect_device_caps_r' may result in an unaligned pointer value [-Werror=address-of-packed-member] 56 | firmwareinfo = mbim_get_string(&caps->firmwareinfo, buffer); | ^~~~~~~~~~~~~~~~~~~ cli.c:57:33: error: taking address of packed member of 'struct mbim_basic_connect_device_caps_r' may result in an unaligned pointer value [-Werror=address-of-packed-member] 57 | hardwareinfo = mbim_get_string(&caps->hardwareinfo, buffer); | ^~~~~~~~~~~~~~~~~~~ cli.c: In function 'mbim_home_provider_response': cli.c:111:32: error: taking address of packed member of 'struct mbimprovider' may result in an unaligned pointer value [-Werror=address-of-packed-member] 111 | provider_id = mbim_get_string(&provider->providerid, buffer); | ^~~~~~~~~~~~~~~~~~~~~ cli.c:112:34: error: taking address of packed member of 'struct mbimprovider' may result in an unaligned pointer value [-Werror=address-of-packed-member] 112 | provider_name = mbim_get_string(&provider->providername, buffer); | ^~~~~~~~~~~~~~~~~~~~~~~ cli.c: In function 'mbim_registration_response': cli.c:135:32: error: taking address of packed member of 'struct mbim_basic_connect_register_state_r' may result in an unaligned pointer value [-Werror=address-of-packed-member] 135 | provider_id = mbim_get_string(&state->providerid, buffer); | ^~~~~~~~~~~~~~~~~~ cli.c:136:34: error: taking address of packed member of 'struct mbim_basic_connect_register_state_r' may result in an unaligned pointer value [-Werror=address-of-packed-member] 136 | provider_name = mbim_get_string(&state->providername, buffer); | ^~~~~~~~~~~~~~~~~~~~ cli.c:137:32: error: taking address of packed member of 'struct mbim_basic_connect_register_state_r' may result in an unaligned pointer value [-Werror=address-of-packed-member] 137 | roamingtext = mbim_get_string(&state->roamingtext, buffer); | ^~~~~~~~~~~~~~~~~~~ cli.c: In function 'mbim_subscriber_response': cli.c:171:33: error: taking address of packed member of 'struct mbim_basic_connect_subscriber_ready_status_r' may result in an unaligned pointer value [-Werror=address-of-packed-member]
The text was updated successfully, but these errors were encountered: