Re: kernel make noise with clang suppression

From: Anonymous <swell.k_at_gmail.com>
Date: Thu, 10 Jun 2010 19:29:09 +0000
Matthew Jacob <mj_at_feral.com> writes:

> Comments? (yes, I know -fformat-extensions have just been added...)
>
>
>
> diff -r ea5e09d013e7 sys/conf/kern.mk
> --- a/sys/conf/kern.mk	Thu Jun 10 07:40:51 2010 -0700
> +++ b/sys/conf/kern.mk	Thu Jun 10 11:35:50 2010 -0700
> _at__at_ -63,9 +67,15 _at__at_
>  # reserved for user applications.
>  #
>  .if ${MACHINE_ARCH} == "amd64"
> +.if ${CC} == "clang"
> +CFLAGS+=	-mcmodel=kernel -mno-red-zone \
> +		-mno-sse -mno-sse2 -mno-sse3 -mno-mmx -mno-3dnow \

Shouldn't be there all supported -msse* by clang? I for one have ssse3
and sse4.1 that are not supported by basegcc.

  $ clang -dM -E -march=native - <&- | awk '/SSE/ && !/MATH/'
  #define __SSE2__ 1
  #define __SSE3__ 1
  #define __SSE4_1__ 1
  #define __SSE__ 1
  #define __SSSE3__ 1

If my guess is right then extracting possible GCC flags should be enough

  $ gcc45 -Q --help=target -march=native | grep 'sse[[:digit:]].*'
    -mno-sse4                               [disabled]
    -msse2                                  [enabled]
    -msse2avx                               [disabled]
    -msse3                                  [enabled]
    -msse4                                  [disabled]
    -msse4.1                                [enabled]
    -msse4.2                                [disabled]
    -msse4a                                 [disabled]
    -mssse3                                 [enabled]

and you're missing only `-mno-ssse3 -mno-sse4 -mno-sse4a'.

> +		-msoft-float -fno-asynchronous-unwind-tables
> +.else
>  CFLAGS+=	-mcmodel=kernel -mno-red-zone \
>  		-mfpmath=387 -mno-sse -mno-sse2 -mno-sse3 -mno-mmx -mno-3dnow \
>  		-msoft-float -fno-asynchronous-unwind-tables
> +.endif
>  INLINE_LIMIT?=	8000
>  .endif
>  
Received on Thu Jun 10 2010 - 17:29:20 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:04 UTC