All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nathan Chancellor <natechancellor@gmail.com>
To: Michal Simek <michal.simek@xilinx.com>
Cc: Nick Desaulniers <ndesaulniers@google.com>,
	Linus Walleij <linus.walleij@linaro.org>,
	linux-gpio@vger.kernel.org,
	Linux ARM <linux-arm-kernel@lists.infradead.org>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] pinctrl: zynq: Use define directive for PIN_CONFIG_IO_STANDARD
Date: Fri, 16 Nov 2018 18:56:51 -0700	[thread overview]
Message-ID: <20181117015651.GA28503@flashbox> (raw)
In-Reply-To: <fd608da5-c1fb-ed55-bf74-7ed476d58c12@xilinx.com>

On Fri, Nov 16, 2018 at 09:40:45AM +0100, Michal Simek wrote:
> On 09. 11. 18 16:36, Nathan Chancellor wrote:
> > On Fri, Nov 09, 2018 at 10:33:00AM +0100, Michal Simek wrote:
> >> On 08. 11. 18 16:01, Nathan Chancellor wrote:
> >>> On Thu, Nov 08, 2018 at 07:45:42AM +0100, Michal Simek wrote:
> >>>> On 07. 11. 18 18:48, Nick Desaulniers wrote:
> >>>>> On Wed, Nov 7, 2018 at 1:01 AM Michal Simek <michal.simek@xilinx.com> wrote:
> >>>>>>
> >>>>>> On 07. 11. 18 9:55, Nathan Chancellor wrote:
> >>>>>>> On Wed, Nov 07, 2018 at 09:46:12AM +0100, Michal Simek wrote:
> >>>>>>>> On 01. 11. 18 1:57, Nathan Chancellor wrote:
> >>>>>>>>> Clang warns when one enumerated type is implicitly converted to another:
> >>>>>>>>>
> >>>>>>>>> drivers/pinctrl/pinctrl-zynq.c:985:18: warning: implicit conversion from
> >>>>>>>>> enumeration type 'enum zynq_pin_config_param' to different enumeration
> >>>>>>>>> type 'enum pin_config_param' [-Wenum-conversion]
> >>>>>>>>>         {"io-standard", PIN_CONFIG_IOSTANDARD, zynq_iostd_lvcmos18},
> >>>>>>>>>         ~               ^~~~~~~~~~~~~~~~~~~~~
> >>>>>>>>> drivers/pinctrl/pinctrl-zynq.c:990:16: warning: implicit conversion from
> >>>>>>>>> enumeration type 'enum zynq_pin_config_param' to different enumeration
> >>>>>>>>> type 'enum pin_config_param' [-Wenum-conversion]
> >>>>>>>>>         = { PCONFDUMP(PIN_CONFIG_IOSTANDARD, "IO-standard", NULL, true),
> >>>>>>>>>             ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >>>>>>>>> ./include/linux/pinctrl/pinconf-generic.h:163:11: note: expanded from
> >>>>>>>>> macro 'PCONFDUMP'
> >>>>>>>>>         .param = a, .display = b, .format = c, .has_arg = d     \
> >>>>>>>>>                  ^
> >>>>>>>>> 2 warnings generated.
> >>>>>>>>
> >>>>>>>> This is interesting. I have never tried to use llvm for building the
> >>>>>>>> kernel. Do you have any description how this can be done?
> >>>>>>>>
> >>>>>>>
> >>>>>>> Depending on what version of Clang you have access to, it is usually just as
> >>>>>>> simple as running 'make ARCH=arm CC=clang CROSS_COMPILE=arm-linux-gnueabi-'.
> >>>>>>>
> >>>>>>> Clang 7.0+ is recommended but 6.0 might work too.
> >>>>>>
> >>>>>> TBH I would expect to download container and run this there to make sure
> >>>>>> that I don't break anything else.
> >>>>>
> >>>>> This is the first request we've had for a container in order to test a
> >>>>> patch.  If it comes up again from other folks, I think it makes sense
> >>>>> to create one.  Until then, its nice to have.  It's definitely
> >>>>> overkill for this patch.
> >>>>
> >>>> I have played with it to see that error and here are some steps I did.
> >>>>
> >>>> docker run --name test-clang -it --rm debian:latest bash
> >>>> apt-get update
> >>>> apt-get install gcc-arm-linux-gnueabi gcc-aarch64-linux-gnu clang git bc
> >>>> build-essential bison flex make llvm vim libssl-dev sparse
> >>>>
> >>>> git clone
> >>>> git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git --depth 1
> >>>> cd linux
> >>>>
> >>>> export ARCH=arm64
> >>>> export CROSS_COMPILE=aarch64-linux-gnu-
> >>>>
> >>>> make defconfig
> >>>
> >>> This should also have 'CC=clang' because compiler detection happens in
> >>> Kconfig now so compiler flags get properly set. Other than that, looks
> >>> good and I was able to build pinctrl-zynq.o without any issues with
> >>> those commands.
> >>
> >> For arm32 I am still getting compilation issue (arm64 is fine)
> >> Below are my steps and version I use. Do you know what could be the
> >> problem?
> >>
> >> Thanks,
> >> Michal
> >>
> >> root@1e15921e6d15:~/linux# arm-linux-gnueabi-gcc --version
> >> arm-linux-gnueabi-gcc (Debian 6.3.0-18) 6.3.0 20170516
> >> Copyright (C) 2016 Free Software Foundation, Inc.
> >> This is free software; see the source for copying conditions.  There is NO
> >> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> >>
> >> root@1e15921e6d15:~/linux# clang --version
> >> clang version 3.8.1-24 (tags/RELEASE_381/final)
> >> Target: x86_64-pc-linux-gnu
> >> Thread model: posix
> >> InstalledDir: /usr/bin
> >>
> >>
> >> export ARCH=arm
> >> export CROSS_COMPILE=arm-linux-gnuaebi-
> >> make CC=clang defconfig
> >> make CC=clang drivers/pinctrl/pinctrl-zynq.o
> >>
> >> and I get
> >> clang: error: unsupported argument '-W' to option 'Wa,'
> >> scripts/Makefile.build:305: recipe for target 'scripts/mod/empty.o' failed
> >> make[2]: *** [scripts/mod/empty.o] Error 1
> >> scripts/Makefile.build:546: recipe for target 'scripts/mod' failed
> >>
> > 
> > Ah because Debian's regular Clang is ancient.
> > 
> > For testing, we use the builds from apt.llvm.org. Commands assuming
> > you're using the normal Debian image:
> > 
> > curl https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
> > echo "deb http://apt.llvm.org/stretch/ llvm-toolchain-stretch main" | tee -a /etc/apt/sources.list
> > apt-get update -qq && apt-get install -y clang-8
> > 
> > Then use `CC=clang-8' instead of 'CC=clang' for all make invocations.
> > 
> 
> Still I see some issues. Log below.
> 
> Thanks,
> Michal
> 
> root@1e15921e6d15:~/linux# git reset --hard v4.20-rc2
> HEAD is now at ccda4af0f4b9 Linux 4.20-rc2
> root@1e15921e6d15:~/linux#
> root@1e15921e6d15:~/linux#
> root@1e15921e6d15:~/linux# export ARCH=arm
> root@1e15921e6d15:~/linux# export CROSS_COMPILE=arm-linux-gnuaebi-
> root@1e15921e6d15:~/linux# export CC=clang-8
> root@1e15921e6d15:~/linux# make CC=clang-8 defconfig
>   HOSTCC  scripts/kconfig/conf.o
>   HOSTLD  scripts/kconfig/conf
> *** Default configuration is based on 'multi_v7_defconfig'
> #
> # configuration written to .config
> #
> root@1e15921e6d15:~/linux# make CC=clang-8
> scripts/kconfig/conf  --syncconfig Kconfig
>   SYSHDR  arch/arm/include/generated/uapi/asm/unistd-common.h
>   SYSHDR  arch/arm/include/generated/uapi/asm/unistd-oabi.h
>   SYSHDR  arch/arm/include/generated/uapi/asm/unistd-eabi.h
>   UPD     include/config/kernel.release
>   UPD     include/generated/uapi/linux/version.h
>   UPD     include/generated/utsrelease.h
>   SYSNR   arch/arm/include/generated/asm/unistd-nr.h
>   SYSTBL  arch/arm/include/generated/calls-oabi.S
>   SYSTBL  arch/arm/include/generated/calls-eabi.S
>   CC      kernel/bounds.s
> clang: warning: argument unused during compilation: '-Wa,-W'
> [-Wunused-command-line-argument]
> clang: warning: argument unused during compilation: '-Wa,-march=armv7-a'
> [-Wunused-command-line-argument]
>   UPD     include/generated/bounds.h
>   CC      arch/arm/kernel/asm-offsets.s
> clang: warning: argument unused during compilation: '-Wa,-W'
> [-Wunused-command-line-argument]
> clang: warning: argument unused during compilation: '-Wa,-march=armv7-a'
> [-Wunused-command-line-argument]
>   UPD     include/generated/asm-offsets.h
>   CALL    scripts/checksyscalls.sh
> clang: warning: argument unused during compilation: '-Wa,-W'
> [-Wunused-command-line-argument]
> clang: warning: argument unused during compilation: '-Wa,-march=armv7-a'
> [-Wunused-command-line-argument]
>   CC      scripts/mod/empty.o
> clang: error: unsupported argument '-W' to option 'Wa,'
> scripts/Makefile.build:293: recipe for target 'scripts/mod/empty.o' failed
> make[2]: *** [scripts/mod/empty.o] Error 1
> scripts/Makefile.build:518: recipe for target 'scripts/mod' failed
> make[1]: *** [scripts/mod] Error 2
> Makefile:1075: recipe for target 'scripts' failed
> make: *** [scripts] Error 2
> root@1e15921e6d15:~/linux# clang-8 --version
> clang version 8.0.0-svn345496-1~exp1+0~20181029105533.852~1.gbpf10f36
> (trunk)
> Target: x86_64-pc-linux-gnu
> Thread model: posix
> InstalledDir: /usr/bin
> root@1e15921e6d15:~/linux# arm-linux-gnueabi-gcc --version
> arm-linux-gnueabi-gcc (Debian 6.3.0-18) 6.3.0 20170516
> Copyright (C) 2016 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> 
> 

I think it's the 'export CC=clang-8'; without it, I can get past that
point without any issues. Our continuous integration setup provides CC
to make on the same line, without an export.

https://github.com/ClangBuiltLinux/continuous-integration/blob/master/driver.sh

https://travis-ci.com/ClangBuiltLinux/continuous-integration/jobs/159007956

root@faf632577e0d:/# git clone --depth=1 git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git /root/linux
Cloning into '/root/linux'...
remote: Counting objects: 66322, done.
remote: Compressing objects: 100% (63190/63190), done.
remote: Total 66322 (delta 5162), reused 31233 (delta 2202)
Receiving objects: 100% (66322/66322), 177.05 MiB | 10.66 MiB/s, done.
Resolving deltas: 100% (5162/5162), done.
Checking out files: 100% (62467/62467), done.
root@faf632577e0d:/# cd /root/linux
root@faf632577e0d:~/linux# export ARCH=arm
root@faf632577e0d:~/linux# export CROSS_COMPILE=arm-linux-gnueabi-
root@faf632577e0d:~/linux# make CC=clang-8 defconfig
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/kconfig/conf.o
  YACC    scripts/kconfig/zconf.tab.c
  LEX     scripts/kconfig/zconf.lex.c
  HOSTCC  scripts/kconfig/zconf.tab.o
  HOSTLD  scripts/kconfig/conf
*** Default configuration is based on 'multi_v7_defconfig'
#
# configuration written to .config
#
root@faf632577e0d:~/linux# make CC=clang-8
  SYSHDR  arch/arm/include/generated/uapi/asm/unistd-common.h
  SYSHDR  arch/arm/include/generated/uapi/asm/unistd-oabi.h
  SYSHDR  arch/arm/include/generated/uapi/asm/unistd-eabi.h
  UPD     include/config/kernel.release
  WRAP    arch/arm/include/generated/uapi/asm/bitsperlong.h
  WRAP    arch/arm/include/generated/uapi/asm/bpf_perf_event.h
  WRAP    arch/arm/include/generated/uapi/asm/errno.h
  WRAP    arch/arm/include/generated/uapi/asm/ioctl.h
  WRAP    arch/arm/include/generated/uapi/asm/ipcbuf.h
  WRAP    arch/arm/include/generated/uapi/asm/msgbuf.h
  WRAP    arch/arm/include/generated/uapi/asm/param.h
  WRAP    arch/arm/include/generated/uapi/asm/poll.h
  WRAP    arch/arm/include/generated/uapi/asm/resource.h
  WRAP    arch/arm/include/generated/uapi/asm/sembuf.h
  WRAP    arch/arm/include/generated/uapi/asm/shmbuf.h
  WRAP    arch/arm/include/generated/uapi/asm/siginfo.h
  WRAP    arch/arm/include/generated/uapi/asm/socket.h
  WRAP    arch/arm/include/generated/uapi/asm/sockios.h
  WRAP    arch/arm/include/generated/uapi/asm/termbits.h
  WRAP    arch/arm/include/generated/uapi/asm/termios.h
  WRAP    arch/arm/include/generated/asm/compat.h
  WRAP    arch/arm/include/generated/asm/current.h
  WRAP    arch/arm/include/generated/asm/early_ioremap.h
  WRAP    arch/arm/include/generated/asm/emergency-restart.h
  WRAP    arch/arm/include/generated/asm/exec.h
  WRAP    arch/arm/include/generated/asm/extable.h
  WRAP    arch/arm/include/generated/asm/irq_regs.h
  WRAP    arch/arm/include/generated/asm/kdebug.h
  WRAP    arch/arm/include/generated/asm/local.h
  WRAP    arch/arm/include/generated/asm/local64.h
  WRAP    arch/arm/include/generated/asm/mm-arch-hooks.h
  WRAP    arch/arm/include/generated/asm/msi.h
  WRAP    arch/arm/include/generated/asm/parport.h
  WRAP    arch/arm/include/generated/asm/preempt.h
  WRAP    arch/arm/include/generated/asm/rwsem.h
  WRAP    arch/arm/include/generated/asm/seccomp.h
  WRAP    arch/arm/include/generated/asm/segment.h
  WRAP    arch/arm/include/generated/asm/serial.h
  WRAP    arch/arm/include/generated/asm/simd.h
  WRAP    arch/arm/include/generated/asm/sizes.h
  WRAP    arch/arm/include/generated/asm/timex.h
  WRAP    arch/arm/include/generated/asm/trace_clock.h
  UPD     include/generated/uapi/linux/version.h
  UPD     include/generated/utsrelease.h
  SYSNR   arch/arm/include/generated/asm/unistd-nr.h
  GEN     arch/arm/include/generated/asm/mach-types.h
  SYSTBL  arch/arm/include/generated/calls-oabi.S
  SYSTBL  arch/arm/include/generated/calls-eabi.S
  CC      kernel/bounds.s
  UPD     include/generated/bounds.h
  UPD     include/generated/timeconst.h
  CC      arch/arm/kernel/asm-offsets.s
  UPD     include/generated/asm-offsets.h
  CALL    scripts/checksyscalls.sh
  HOSTCC  scripts/dtc/dtc.o
  HOSTCC  scripts/dtc/flattree.o
  HOSTCC  scripts/dtc/fstree.o
  HOSTCC  scripts/dtc/data.o
  HOSTCC  scripts/dtc/livetree.o
  HOSTCC  scripts/dtc/treesource.o
  HOSTCC  scripts/dtc/srcpos.o
  HOSTCC  scripts/dtc/checks.o
  HOSTCC  scripts/dtc/util.o
  LEX     scripts/dtc/dtc-lexer.lex.c
  YACC    scripts/dtc/dtc-parser.tab.h
  HOSTCC  scripts/dtc/dtc-lexer.lex.o
  YACC    scripts/dtc/dtc-parser.tab.c
  HOSTCC  scripts/dtc/dtc-parser.tab.o
  HOSTLD  scripts/dtc/dtc
  CC      scripts/mod/empty.o
  HOSTCC  scripts/mod/mk_elfconfig
  MKELF   scripts/mod/elfconfig.h
  HOSTCC  scripts/mod/modpost.o
  CC      scripts/mod/devicetable-offsets.s
  UPD     scripts/mod/devicetable-offsets.h
  HOSTCC  scripts/mod/file2alias.o
  HOSTCC  scripts/mod/sumversion.o
  HOSTLD  scripts/mod/modpost
  HOSTCC  scripts/kallsyms
  HOSTCC  scripts/conmakehash
  HOSTCC  scripts/sortextable
  HOSTCC  scripts/asn1_compiler
  HOSTCC  scripts/extract-cert
  CHK     include/generated/compile.h
  UPD     include/generated/compile.h
  CC      init/main.o
  CC      init/version.o
  CC      init/do_mounts.o
  CC      init/do_mounts_rd.o
  CC      init/do_mounts_initrd.o
  CC      init/initramfs.o
  CC      init/calibrate.o
  CC      init/init_task.o
  AR      init/built-in.a
  HOSTCC  usr/gen_init_cpio
  GEN     usr/initramfs_data.cpio
  AS      usr/initramfs_data.o
  AR      usr/built-in.a
  CC      arch/arm/vfp/vfpmodule.o
  AS      arch/arm/vfp/entry.o
  AS      arch/arm/vfp/vfphw.o
  CC      arch/arm/vfp/vfpsingle.o
  CC      arch/arm/vfp/vfpdouble.o
  AR      arch/arm/vfp/built-in.a
  LDS     arch/arm/vdso/vdso.lds
  CC      arch/arm/vdso/vgettimeofday.o
  AS      arch/arm/vdso/datapage.o
  VDSO    arch/arm/vdso/vdso.so.raw
  HOSTCC  arch/arm/vdso/vdsomunge
  MUNGE   arch/arm/vdso/vdso.so.dbg
  OBJCOPY arch/arm/vdso/vdso.so
  AS      arch/arm/vdso/vdso.o
  AR      arch/arm/vdso/built-in.a
  CC      arch/arm/kernel/elf.o
  AS      arch/arm/kernel/entry-common.o
  CC      arch/arm/kernel/irq.o

WARNING: multiple messages have this Message-ID (diff)
From: natechancellor@gmail.com (Nathan Chancellor)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] pinctrl: zynq: Use define directive for PIN_CONFIG_IO_STANDARD
Date: Fri, 16 Nov 2018 18:56:51 -0700	[thread overview]
Message-ID: <20181117015651.GA28503@flashbox> (raw)
In-Reply-To: <fd608da5-c1fb-ed55-bf74-7ed476d58c12@xilinx.com>

On Fri, Nov 16, 2018 at 09:40:45AM +0100, Michal Simek wrote:
> On 09. 11. 18 16:36, Nathan Chancellor wrote:
> > On Fri, Nov 09, 2018 at 10:33:00AM +0100, Michal Simek wrote:
> >> On 08. 11. 18 16:01, Nathan Chancellor wrote:
> >>> On Thu, Nov 08, 2018 at 07:45:42AM +0100, Michal Simek wrote:
> >>>> On 07. 11. 18 18:48, Nick Desaulniers wrote:
> >>>>> On Wed, Nov 7, 2018 at 1:01 AM Michal Simek <michal.simek@xilinx.com> wrote:
> >>>>>>
> >>>>>> On 07. 11. 18 9:55, Nathan Chancellor wrote:
> >>>>>>> On Wed, Nov 07, 2018 at 09:46:12AM +0100, Michal Simek wrote:
> >>>>>>>> On 01. 11. 18 1:57, Nathan Chancellor wrote:
> >>>>>>>>> Clang warns when one enumerated type is implicitly converted to another:
> >>>>>>>>>
> >>>>>>>>> drivers/pinctrl/pinctrl-zynq.c:985:18: warning: implicit conversion from
> >>>>>>>>> enumeration type 'enum zynq_pin_config_param' to different enumeration
> >>>>>>>>> type 'enum pin_config_param' [-Wenum-conversion]
> >>>>>>>>>         {"io-standard", PIN_CONFIG_IOSTANDARD, zynq_iostd_lvcmos18},
> >>>>>>>>>         ~               ^~~~~~~~~~~~~~~~~~~~~
> >>>>>>>>> drivers/pinctrl/pinctrl-zynq.c:990:16: warning: implicit conversion from
> >>>>>>>>> enumeration type 'enum zynq_pin_config_param' to different enumeration
> >>>>>>>>> type 'enum pin_config_param' [-Wenum-conversion]
> >>>>>>>>>         = { PCONFDUMP(PIN_CONFIG_IOSTANDARD, "IO-standard", NULL, true),
> >>>>>>>>>             ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >>>>>>>>> ./include/linux/pinctrl/pinconf-generic.h:163:11: note: expanded from
> >>>>>>>>> macro 'PCONFDUMP'
> >>>>>>>>>         .param = a, .display = b, .format = c, .has_arg = d     \
> >>>>>>>>>                  ^
> >>>>>>>>> 2 warnings generated.
> >>>>>>>>
> >>>>>>>> This is interesting. I have never tried to use llvm for building the
> >>>>>>>> kernel. Do you have any description how this can be done?
> >>>>>>>>
> >>>>>>>
> >>>>>>> Depending on what version of Clang you have access to, it is usually just as
> >>>>>>> simple as running 'make ARCH=arm CC=clang CROSS_COMPILE=arm-linux-gnueabi-'.
> >>>>>>>
> >>>>>>> Clang 7.0+ is recommended but 6.0 might work too.
> >>>>>>
> >>>>>> TBH I would expect to download container and run this there to make sure
> >>>>>> that I don't break anything else.
> >>>>>
> >>>>> This is the first request we've had for a container in order to test a
> >>>>> patch.  If it comes up again from other folks, I think it makes sense
> >>>>> to create one.  Until then, its nice to have.  It's definitely
> >>>>> overkill for this patch.
> >>>>
> >>>> I have played with it to see that error and here are some steps I did.
> >>>>
> >>>> docker run --name test-clang -it --rm debian:latest bash
> >>>> apt-get update
> >>>> apt-get install gcc-arm-linux-gnueabi gcc-aarch64-linux-gnu clang git bc
> >>>> build-essential bison flex make llvm vim libssl-dev sparse
> >>>>
> >>>> git clone
> >>>> git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git --depth 1
> >>>> cd linux
> >>>>
> >>>> export ARCH=arm64
> >>>> export CROSS_COMPILE=aarch64-linux-gnu-
> >>>>
> >>>> make defconfig
> >>>
> >>> This should also have 'CC=clang' because compiler detection happens in
> >>> Kconfig now so compiler flags get properly set. Other than that, looks
> >>> good and I was able to build pinctrl-zynq.o without any issues with
> >>> those commands.
> >>
> >> For arm32 I am still getting compilation issue (arm64 is fine)
> >> Below are my steps and version I use. Do you know what could be the
> >> problem?
> >>
> >> Thanks,
> >> Michal
> >>
> >> root at 1e15921e6d15:~/linux# arm-linux-gnueabi-gcc --version
> >> arm-linux-gnueabi-gcc (Debian 6.3.0-18) 6.3.0 20170516
> >> Copyright (C) 2016 Free Software Foundation, Inc.
> >> This is free software; see the source for copying conditions.  There is NO
> >> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> >>
> >> root at 1e15921e6d15:~/linux# clang --version
> >> clang version 3.8.1-24 (tags/RELEASE_381/final)
> >> Target: x86_64-pc-linux-gnu
> >> Thread model: posix
> >> InstalledDir: /usr/bin
> >>
> >>
> >> export ARCH=arm
> >> export CROSS_COMPILE=arm-linux-gnuaebi-
> >> make CC=clang defconfig
> >> make CC=clang drivers/pinctrl/pinctrl-zynq.o
> >>
> >> and I get
> >> clang: error: unsupported argument '-W' to option 'Wa,'
> >> scripts/Makefile.build:305: recipe for target 'scripts/mod/empty.o' failed
> >> make[2]: *** [scripts/mod/empty.o] Error 1
> >> scripts/Makefile.build:546: recipe for target 'scripts/mod' failed
> >>
> > 
> > Ah because Debian's regular Clang is ancient.
> > 
> > For testing, we use the builds from apt.llvm.org. Commands assuming
> > you're using the normal Debian image:
> > 
> > curl https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
> > echo "deb http://apt.llvm.org/stretch/ llvm-toolchain-stretch main" | tee -a /etc/apt/sources.list
> > apt-get update -qq && apt-get install -y clang-8
> > 
> > Then use `CC=clang-8' instead of 'CC=clang' for all make invocations.
> > 
> 
> Still I see some issues. Log below.
> 
> Thanks,
> Michal
> 
> root at 1e15921e6d15:~/linux# git reset --hard v4.20-rc2
> HEAD is now at ccda4af0f4b9 Linux 4.20-rc2
> root at 1e15921e6d15:~/linux#
> root at 1e15921e6d15:~/linux#
> root at 1e15921e6d15:~/linux# export ARCH=arm
> root at 1e15921e6d15:~/linux# export CROSS_COMPILE=arm-linux-gnuaebi-
> root at 1e15921e6d15:~/linux# export CC=clang-8
> root at 1e15921e6d15:~/linux# make CC=clang-8 defconfig
>   HOSTCC  scripts/kconfig/conf.o
>   HOSTLD  scripts/kconfig/conf
> *** Default configuration is based on 'multi_v7_defconfig'
> #
> # configuration written to .config
> #
> root at 1e15921e6d15:~/linux# make CC=clang-8
> scripts/kconfig/conf  --syncconfig Kconfig
>   SYSHDR  arch/arm/include/generated/uapi/asm/unistd-common.h
>   SYSHDR  arch/arm/include/generated/uapi/asm/unistd-oabi.h
>   SYSHDR  arch/arm/include/generated/uapi/asm/unistd-eabi.h
>   UPD     include/config/kernel.release
>   UPD     include/generated/uapi/linux/version.h
>   UPD     include/generated/utsrelease.h
>   SYSNR   arch/arm/include/generated/asm/unistd-nr.h
>   SYSTBL  arch/arm/include/generated/calls-oabi.S
>   SYSTBL  arch/arm/include/generated/calls-eabi.S
>   CC      kernel/bounds.s
> clang: warning: argument unused during compilation: '-Wa,-W'
> [-Wunused-command-line-argument]
> clang: warning: argument unused during compilation: '-Wa,-march=armv7-a'
> [-Wunused-command-line-argument]
>   UPD     include/generated/bounds.h
>   CC      arch/arm/kernel/asm-offsets.s
> clang: warning: argument unused during compilation: '-Wa,-W'
> [-Wunused-command-line-argument]
> clang: warning: argument unused during compilation: '-Wa,-march=armv7-a'
> [-Wunused-command-line-argument]
>   UPD     include/generated/asm-offsets.h
>   CALL    scripts/checksyscalls.sh
> clang: warning: argument unused during compilation: '-Wa,-W'
> [-Wunused-command-line-argument]
> clang: warning: argument unused during compilation: '-Wa,-march=armv7-a'
> [-Wunused-command-line-argument]
>   CC      scripts/mod/empty.o
> clang: error: unsupported argument '-W' to option 'Wa,'
> scripts/Makefile.build:293: recipe for target 'scripts/mod/empty.o' failed
> make[2]: *** [scripts/mod/empty.o] Error 1
> scripts/Makefile.build:518: recipe for target 'scripts/mod' failed
> make[1]: *** [scripts/mod] Error 2
> Makefile:1075: recipe for target 'scripts' failed
> make: *** [scripts] Error 2
> root at 1e15921e6d15:~/linux# clang-8 --version
> clang version 8.0.0-svn345496-1~exp1+0~20181029105533.852~1.gbpf10f36
> (trunk)
> Target: x86_64-pc-linux-gnu
> Thread model: posix
> InstalledDir: /usr/bin
> root at 1e15921e6d15:~/linux# arm-linux-gnueabi-gcc --version
> arm-linux-gnueabi-gcc (Debian 6.3.0-18) 6.3.0 20170516
> Copyright (C) 2016 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> 
> 

I think it's the 'export CC=clang-8'; without it, I can get past that
point without any issues. Our continuous integration setup provides CC
to make on the same line, without an export.

https://github.com/ClangBuiltLinux/continuous-integration/blob/master/driver.sh

https://travis-ci.com/ClangBuiltLinux/continuous-integration/jobs/159007956

root at faf632577e0d:/# git clone --depth=1 git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git /root/linux
Cloning into '/root/linux'...
remote: Counting objects: 66322, done.
remote: Compressing objects: 100% (63190/63190), done.
remote: Total 66322 (delta 5162), reused 31233 (delta 2202)
Receiving objects: 100% (66322/66322), 177.05 MiB | 10.66 MiB/s, done.
Resolving deltas: 100% (5162/5162), done.
Checking out files: 100% (62467/62467), done.
root at faf632577e0d:/# cd /root/linux
root at faf632577e0d:~/linux# export ARCH=arm
root at faf632577e0d:~/linux# export CROSS_COMPILE=arm-linux-gnueabi-
root at faf632577e0d:~/linux# make CC=clang-8 defconfig
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/kconfig/conf.o
  YACC    scripts/kconfig/zconf.tab.c
  LEX     scripts/kconfig/zconf.lex.c
  HOSTCC  scripts/kconfig/zconf.tab.o
  HOSTLD  scripts/kconfig/conf
*** Default configuration is based on 'multi_v7_defconfig'
#
# configuration written to .config
#
root at faf632577e0d:~/linux# make CC=clang-8
  SYSHDR  arch/arm/include/generated/uapi/asm/unistd-common.h
  SYSHDR  arch/arm/include/generated/uapi/asm/unistd-oabi.h
  SYSHDR  arch/arm/include/generated/uapi/asm/unistd-eabi.h
  UPD     include/config/kernel.release
  WRAP    arch/arm/include/generated/uapi/asm/bitsperlong.h
  WRAP    arch/arm/include/generated/uapi/asm/bpf_perf_event.h
  WRAP    arch/arm/include/generated/uapi/asm/errno.h
  WRAP    arch/arm/include/generated/uapi/asm/ioctl.h
  WRAP    arch/arm/include/generated/uapi/asm/ipcbuf.h
  WRAP    arch/arm/include/generated/uapi/asm/msgbuf.h
  WRAP    arch/arm/include/generated/uapi/asm/param.h
  WRAP    arch/arm/include/generated/uapi/asm/poll.h
  WRAP    arch/arm/include/generated/uapi/asm/resource.h
  WRAP    arch/arm/include/generated/uapi/asm/sembuf.h
  WRAP    arch/arm/include/generated/uapi/asm/shmbuf.h
  WRAP    arch/arm/include/generated/uapi/asm/siginfo.h
  WRAP    arch/arm/include/generated/uapi/asm/socket.h
  WRAP    arch/arm/include/generated/uapi/asm/sockios.h
  WRAP    arch/arm/include/generated/uapi/asm/termbits.h
  WRAP    arch/arm/include/generated/uapi/asm/termios.h
  WRAP    arch/arm/include/generated/asm/compat.h
  WRAP    arch/arm/include/generated/asm/current.h
  WRAP    arch/arm/include/generated/asm/early_ioremap.h
  WRAP    arch/arm/include/generated/asm/emergency-restart.h
  WRAP    arch/arm/include/generated/asm/exec.h
  WRAP    arch/arm/include/generated/asm/extable.h
  WRAP    arch/arm/include/generated/asm/irq_regs.h
  WRAP    arch/arm/include/generated/asm/kdebug.h
  WRAP    arch/arm/include/generated/asm/local.h
  WRAP    arch/arm/include/generated/asm/local64.h
  WRAP    arch/arm/include/generated/asm/mm-arch-hooks.h
  WRAP    arch/arm/include/generated/asm/msi.h
  WRAP    arch/arm/include/generated/asm/parport.h
  WRAP    arch/arm/include/generated/asm/preempt.h
  WRAP    arch/arm/include/generated/asm/rwsem.h
  WRAP    arch/arm/include/generated/asm/seccomp.h
  WRAP    arch/arm/include/generated/asm/segment.h
  WRAP    arch/arm/include/generated/asm/serial.h
  WRAP    arch/arm/include/generated/asm/simd.h
  WRAP    arch/arm/include/generated/asm/sizes.h
  WRAP    arch/arm/include/generated/asm/timex.h
  WRAP    arch/arm/include/generated/asm/trace_clock.h
  UPD     include/generated/uapi/linux/version.h
  UPD     include/generated/utsrelease.h
  SYSNR   arch/arm/include/generated/asm/unistd-nr.h
  GEN     arch/arm/include/generated/asm/mach-types.h
  SYSTBL  arch/arm/include/generated/calls-oabi.S
  SYSTBL  arch/arm/include/generated/calls-eabi.S
  CC      kernel/bounds.s
  UPD     include/generated/bounds.h
  UPD     include/generated/timeconst.h
  CC      arch/arm/kernel/asm-offsets.s
  UPD     include/generated/asm-offsets.h
  CALL    scripts/checksyscalls.sh
  HOSTCC  scripts/dtc/dtc.o
  HOSTCC  scripts/dtc/flattree.o
  HOSTCC  scripts/dtc/fstree.o
  HOSTCC  scripts/dtc/data.o
  HOSTCC  scripts/dtc/livetree.o
  HOSTCC  scripts/dtc/treesource.o
  HOSTCC  scripts/dtc/srcpos.o
  HOSTCC  scripts/dtc/checks.o
  HOSTCC  scripts/dtc/util.o
  LEX     scripts/dtc/dtc-lexer.lex.c
  YACC    scripts/dtc/dtc-parser.tab.h
  HOSTCC  scripts/dtc/dtc-lexer.lex.o
  YACC    scripts/dtc/dtc-parser.tab.c
  HOSTCC  scripts/dtc/dtc-parser.tab.o
  HOSTLD  scripts/dtc/dtc
  CC      scripts/mod/empty.o
  HOSTCC  scripts/mod/mk_elfconfig
  MKELF   scripts/mod/elfconfig.h
  HOSTCC  scripts/mod/modpost.o
  CC      scripts/mod/devicetable-offsets.s
  UPD     scripts/mod/devicetable-offsets.h
  HOSTCC  scripts/mod/file2alias.o
  HOSTCC  scripts/mod/sumversion.o
  HOSTLD  scripts/mod/modpost
  HOSTCC  scripts/kallsyms
  HOSTCC  scripts/conmakehash
  HOSTCC  scripts/sortextable
  HOSTCC  scripts/asn1_compiler
  HOSTCC  scripts/extract-cert
  CHK     include/generated/compile.h
  UPD     include/generated/compile.h
  CC      init/main.o
  CC      init/version.o
  CC      init/do_mounts.o
  CC      init/do_mounts_rd.o
  CC      init/do_mounts_initrd.o
  CC      init/initramfs.o
  CC      init/calibrate.o
  CC      init/init_task.o
  AR      init/built-in.a
  HOSTCC  usr/gen_init_cpio
  GEN     usr/initramfs_data.cpio
  AS      usr/initramfs_data.o
  AR      usr/built-in.a
  CC      arch/arm/vfp/vfpmodule.o
  AS      arch/arm/vfp/entry.o
  AS      arch/arm/vfp/vfphw.o
  CC      arch/arm/vfp/vfpsingle.o
  CC      arch/arm/vfp/vfpdouble.o
  AR      arch/arm/vfp/built-in.a
  LDS     arch/arm/vdso/vdso.lds
  CC      arch/arm/vdso/vgettimeofday.o
  AS      arch/arm/vdso/datapage.o
  VDSO    arch/arm/vdso/vdso.so.raw
  HOSTCC  arch/arm/vdso/vdsomunge
  MUNGE   arch/arm/vdso/vdso.so.dbg
  OBJCOPY arch/arm/vdso/vdso.so
  AS      arch/arm/vdso/vdso.o
  AR      arch/arm/vdso/built-in.a
  CC      arch/arm/kernel/elf.o
  AS      arch/arm/kernel/entry-common.o
  CC      arch/arm/kernel/irq.o

  reply	other threads:[~2018-11-17  1:56 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-01  0:57 [PATCH] pinctrl: zynq: Use define directive for PIN_CONFIG_IO_STANDARD Nathan Chancellor
2018-11-01  0:57 ` Nathan Chancellor
2018-11-07  8:46 ` Michal Simek
2018-11-07  8:46   ` Michal Simek
2018-11-07  8:46   ` Michal Simek
2018-11-07  8:55   ` Nathan Chancellor
2018-11-07  8:55     ` Nathan Chancellor
2018-11-07  9:00     ` Michal Simek
2018-11-07  9:00       ` Michal Simek
2018-11-07  9:00       ` Michal Simek
2018-11-07 17:48       ` Nick Desaulniers
2018-11-07 17:48         ` Nick Desaulniers
2018-11-08  6:45         ` Michal Simek
2018-11-08  6:45           ` Michal Simek
2018-11-08  6:45           ` Michal Simek
2018-11-08 15:01           ` Nathan Chancellor
2018-11-08 15:01             ` Nathan Chancellor
2018-11-09  9:33             ` Michal Simek
2018-11-09  9:33               ` Michal Simek
2018-11-09  9:33               ` Michal Simek
2018-11-09 15:36               ` Nathan Chancellor
2018-11-09 15:36                 ` Nathan Chancellor
2018-11-16  8:40                 ` Michal Simek
2018-11-16  8:40                   ` Michal Simek
2018-11-16  8:40                   ` Michal Simek
2018-11-17  1:56                   ` Nathan Chancellor [this message]
2018-11-17  1:56                     ` Nathan Chancellor
2018-11-19  7:32                     ` Michal Simek
2018-11-19  7:32                       ` Michal Simek
2018-11-19  7:32                       ` Michal Simek
2018-11-07  8:56 ` [PATCH v2] " Nathan Chancellor
2018-11-07  8:56   ` Nathan Chancellor
2018-11-07  9:02   ` Michal Simek
2018-11-07  9:02     ` Michal Simek
2018-11-07  9:02     ` Michal Simek
2018-11-09  9:26   ` Linus Walleij
2018-11-09  9:26     ` Linus Walleij

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20181117015651.GA28503@flashbox \
    --to=natechancellor@gmail.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michal.simek@xilinx.com \
    --cc=ndesaulniers@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.