utils icon indicating copy to clipboard operation
utils copied to clipboard

vcgencmd: Avoid compiler complaints

Open popcornmix opened this issue 1 year ago • 11 comments

Latest compilers are more fussy and this doesn't build with debian build scripts. Fix this.

popcornmix avatar Jan 15 '24 15:01 popcornmix

@XECDesign does this fix your build issues?

popcornmix avatar Jan 15 '24 15:01 popcornmix

See #64.

pelwell avatar Jan 15 '24 15:01 pelwell

Okay - dropped eeptools commit.

popcornmix avatar Jan 15 '24 15:01 popcornmix

Seems to build, yeah.

XECDesign avatar Jan 15 '24 17:01 XECDesign

I can update the package once this is merged.

XECDesign avatar Jan 16 '24 13:01 XECDesign

@pelwell is this okay?

popcornmix avatar Jan 16 '24 13:01 popcornmix

I don't understand (without seeing the errors) why memset (which will happily copy beyond the end of the string) is somehow more acceptable than strncpy, but I'm happy for this to be merged.

pelwell avatar Jan 16 '24 13:01 pelwell

Full disclosure: I didn't try building from head of tree without this commit. So if there's a chance it's not needed, I can try without it.

Update: seems happy without it.

XECDesign avatar Jan 16 '24 13:01 XECDesign

I was curious why it wasn't failing and it looks like some cmake files have this line: set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror -pedantic")

vcgencmd doesn't, so it only inherits the CFLAGS passed down by Debian's build system - CFLAGS=-g -O2 -ffile-prefix-map=<snip>=. -fstack-protector-strong -Wformat -Werror=format-security

XECDesign avatar Jan 16 '24 14:01 XECDesign

I don't understand (without seeing the errors) why memset (which will happily copy beyond the end of the string) is somehow more acceptable than strncpy, but I'm happy for this to be merged.

In the commit message was the error:

In file included from /usr/include/string.h:535, from /<<PKGBUILDDIR>>/vcgencmd/vcgencmd.c:34: In function ‘strncat’, inlined from ‘gencmd’ at /<<PKGBUILDDIR>>/vcgencmd/vcgencmd.c:109:4, inlined from ‘main’ at /<<PKGBUILDDIR>>/vcgencmd/vcgencmd.c:152:14: /usr/include/arm-linux-gnueabihf/bits/string_fortified.h:138:10: warning: ‘__builtin___strncat_chk’ specified bound 1024 equals destination size [-Wstringop-overflow=] 138 | return __builtin___strncat_chk (__dest, __src, __len, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 139 | __glibc_objsize (__dest)); | ~~~~~~~~~~~~~~~~~~~~~~~~~

it seems strncat triggers some additional bounds checking that memcpy does not.

popcornmix avatar Jan 16 '24 14:01 popcornmix

Please can we not include -Werror in the default flags as it's a pain for both distributions and users building themselves. Perhaps we could only add it when CMAKE_BUILD_TYPE is Debug.

chewi avatar Feb 03 '24 17:02 chewi