summaryrefslogtreecommitdiff
path: root/util/sbase/yes.1
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2026-03-17 19:08:49 +0000
committerLeah Rowe <leah@libreboot.org>2026-03-17 19:08:49 +0000
commitfd1bafecd198559149a6dfce2a38f3c7210c8b3d (patch)
tree07a1c104c47badc10a4873ae7f11664d16fb55bd /util/sbase/yes.1
parent5ab3b11446f51b8b31939286e86b9788d9e7def9 (diff)
util/nvmutil: portable default make rules
older compilers might not have -std for example. the code is portable, but old compilers can't compile with just "make", you have to add lots of flags i will now use "make strict" and "make hell" in testing, but otherwise make without flags are fine. move the current strictness to command: make strict added an extra command: make hell hell uses -Weverything, and is useful with clang's strict testing, on which i only got a very small number of errors (it's way less than a lot of programs would get with this flag, because -Weverything is REALLY STRICT): ja, mich nvmutil$ make hell CC=clang clang -I. -Wall -Wextra -pedantic -std=c90 -Os -Werror -Weverything nvmutil.c -o nvmutil In file included from nvmutil.c:35: ./nvmutil.h:225:16: error: padding struct 'struct commands' with 1 byte to align 'rw_size' [-Werror,-Wpadded] 225 | unsigned long rw_size; /* within the 4KB GbE part */ | ^ ./nvmutil.h:217:8: error: padding size of 'struct commands' with 4 bytes to alignment boundary [-Werror,-Wpadded] 217 | struct commands { | ^ ./nvmutil.h:235:8: error: padding size of 'struct xfile' with 4 bytes to alignment boundary [-Werror,-Wpadded] 235 | struct xfile { | ^ ./nvmutil.h:288:16: error: padding struct 'struct xstate' with 4 bytes to align 'xsize' [-Werror,-Wpadded] 288 | unsigned long xsize; | ^ nvmutil.c:617:43: error: implicit conversion changes signedness: 'off_t' (aka 'long') to 'unsigned long' [-Werror,-Wsign-conversion] 617 | _r = rw_file_exact(f->gbe_fd, f->buf, f->gbe_file_size, | ~~~~~~~~~~~~~ ~~~^~~~~~~~~~~~~ nvmutil.c:626:43: error: implicit conversion changes signedness: 'off_t' (aka 'long') to 'unsigned long' [-Werror,-Wsign-conversion] 626 | _r = rw_file_exact(f->tmp_fd, f->buf, f->gbe_file_size, | ~~~~~~~~~~~~~ ~~~^~~~~~~~~~~~~ nvmutil.c:654:46: error: implicit conversion changes signedness: 'off_t' (aka 'long') to 'unsigned long' [-Werror,-Wsign-conversion] 654 | _r = rw_file_exact(f->tmp_fd, f->bufcmp, f->gbe_file_size, | ~~~~~~~~~~~~~ ~~~^~~~~~~~~~~~~ nvmutil.c:661:39: error: implicit conversion changes signedness: 'off_t' (aka 'long') to 'unsigned long' [-Werror,-Wsign-conversion] 661 | if (x_i_memcmp(f->buf, f->bufcmp, f->gbe_file_size) != 0) | ~~~~~~~~~~ ~~~^~~~~~~~~~~~~ nvmutil.c:702:23: error: implicit conversion loses integer precision: 'int' to 'unsigned char' [-Werror,-Wimplicit-int-conversion] 702 | f->part_valid[_p] = good_checksum(_p); | ~ ^~~~~~~~~~~~~~~~~ nvmutil.c:1045:21: error: implicit conversion loses integer precision: 'int' to 'unsigned char' [-Werror,-Wimplicit-int-conversion] 1045 | f->part_valid[0] = good_checksum(0); | ~ ^~~~~~~~~~~~~~~~ nvmutil.c:1046:21: error: implicit conversion loses integer precision: 'int' to 'unsigned char' [-Werror,-Wimplicit-int-conversion] 1046 | f->part_valid[1] = good_checksum(1); | ~ ^~~~~~~~~~~~~~~~ nvmutil.c:1170:45: error: implicit conversion changes signedness: 'off_t' (aka 'long') to 'unsigned long' [-Werror,-Wsign-conversion] 1170 | (unsigned long)(p * (f->gbe_file_size >> 1))); | ~ ~~~~~~~~~~~~~~~~~^~~~ nvmutil.c:1269:37: error: implicit conversion loses integer precision: 'int' to 'unsigned short' [-Werror,-Wimplicit-int-conversion] 1269 | return (unsigned short)f->buf[pos] | | ~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ 1270 | ((unsigned short)f->buf[pos + 1] << 8); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nvmutil.c:1610:9: error: implicit conversion changes signedness: 'off_t' (aka 'long') to 'unsigned long' [-Werror,-Wsign-conversion] 1609 | r = rw_file_exact(f->tmp_fd, f->bufcmp, | ~~~~~~~~~~~~~ 1610 | f->gbe_file_size, 0, IO_PREAD, | ~~~^~~~~~~~~~~~~ nvmutil.c:1618:9: error: implicit conversion changes signedness: 'off_t' (aka 'long') to 'unsigned long' [-Werror,-Wsign-conversion] 1617 | r = rw_file_exact(dest_fd, f->bufcmp, | ~~~~~~~~~~~~~ 1618 | f->gbe_file_size, 0, IO_PWRITE, | ~~~^~~~~~~~~~~~~ nvmutil.c:1609:6: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32] 1609 | r = rw_file_exact(f->tmp_fd, f->bufcmp, | ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1610 | f->gbe_file_size, 0, IO_PREAD, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1611 | NO_LOOP_EAGAIN, LOOP_EINTR, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1612 | MAX_ZERO_RW_RETRY, OFF_ERR); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ nvmutil.c:1617:6: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32] 1617 | r = rw_file_exact(dest_fd, f->bufcmp, | ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1618 | f->gbe_file_size, 0, IO_PWRITE, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1619 | NO_LOOP_EAGAIN, LOOP_EINTR, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1620 | MAX_ZERO_RW_RETRY, OFF_ERR); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ nvmutil.c:1936:45: error: implicit conversion changes signedness: 'long' to 'unsigned long' [-Werror,-Wsign-conversion] 1936 | if (rv >= 0 && (unsigned long)rv > (nrw - rc)) | ~ ^~ nvmutil.c:2193:27: error: signed shift result (0x8000000000000000) sets the sign bit of the shift expression's type ('long') and becomes negative [-Werror,-Wshift-sign-overflow] 2193 | if (nrw > (unsigned long)X_LONG_MAX) | ^~~~~~~~~~ ./nvmutil.h:147:38: note: expanded from macro 'X_LONG_MAX' 147 | #define X_LONG_MAX ((long)(~((long)1 << (sizeof(long)*CHAR_BIT-1)))) | ~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~ fatal error: too many errors emitted, stopping now [-ferror-limit=] 20 errors generated. make: *** [Makefile:42: hell] Fehler 1 in a future commit, i intend to fix all of these issues, so that the code reliably compiles in hell-mode. Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'util/sbase/yes.1')
0 files changed, 0 insertions, 0 deletions