lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Mon, 22 Jan 2024 11:48:03 +0800
From: Aiden Leong <aiden.leong@...sd.com>
To: masahiroy@...nel.org
Cc: linux-kbuild@...r.kernel.org, linux-kernel@...r.kernel.org,
 nathan@...nel.org, ndesaulniers@...gle.com, nicolas@...sle.eu
Subject: Re: [PATCH v2 2/4] modpost: inform compilers that fatal() never
 returns


 > The function fatal() never returns because modpost_log() calls exit(1)

 > when LOG_FATAL is passed.
 >
 > Inform compilers of this fact so that unreachable code flow can be
 > identified at compile time.
 >
 > Signed-off-by: Masahiro Yamada <masahiroy@...nel.org>
 > Reviewed-by: Nathan Chancellor <nathan@...nel.org>
 > ---
 >
 > Changes in v2:
 >   - Use noreturn attribute together with alias
 >
 >  scripts/mod/modpost.c | 3 +++
 >  scripts/mod/modpost.h | 5 ++++-
 >  2 files changed, 7 insertions(+), 1 deletion(-)
 >
 > diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
 > index ca0a90158f85..c13bc9095df3 100644
 > --- a/scripts/mod/modpost.c
 > +++ b/scripts/mod/modpost.c
 > @@ -90,6 +90,9 @@ void modpost_log(enum loglevel loglevel, const char 
*fmt, ...)
 >          error_occurred = true;
 >  }
 >
 > +void __attribute__((alias("modpost_log")))

Hi Masahiro,
I cross-compile kernel on Apple Silicon MacBook Pro
and every thing works well until this patch.

My build command:
make ARCH=arm CROSS_COMPILE=arm-none-eabi- \
HOSTCFLAGS="-I/opt/homebrew/opt/openssl/include" \
HOSTLDFLAGS="-L/opt/homebrew/opt/openssl/lib"

Error message:
scripts/mod/modpost.c:93:21: error: aliases are not supported on darwin

Aiden Leong

 > +modpost_log_noret(enum loglevel loglevel, const char *fmt, ...);
 > +
 >  static inline bool strends(const char *str, const char *postfix)
 >  {
 >      if (strlen(str) < strlen(postfix))
 > diff --git a/scripts/mod/modpost.h b/scripts/mod/modpost.h
 > index 9fe974dc1a52..835cababf1b0 100644
 > --- a/scripts/mod/modpost.h
 > +++ b/scripts/mod/modpost.h
 > @@ -200,6 +200,9 @@ enum loglevel {
 >  void __attribute__((format(printf, 2, 3)))
 >  modpost_log(enum loglevel loglevel, const char *fmt, ...);
 >
 > +void __attribute__((format(printf, 2, 3), noreturn))
 > +modpost_log_noret(enum loglevel loglevel, const char *fmt, ...);
 > +
 >  /*
 >   * warn - show the given message, then let modpost continue running, 
still
 >   *        allowing modpost to exit successfully. This should be used 
when
 > @@ -215,4 +218,4 @@ modpost_log(enum loglevel loglevel, const char 
*fmt, ...);
 >   */
 >  #define warn(fmt, args...)    modpost_log(LOG_WARN, fmt, ##args)
 >  #define error(fmt, args...)    modpost_log(LOG_ERROR, fmt, ##args)
 > -#define fatal(fmt, args...)    modpost_log(LOG_FATAL, fmt, ##args)
 > +#define fatal(fmt, args...)    modpost_log_noret(LOG_FATAL, fmt, ##args)
 > --
 > 2.40.1

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ