On Mon, Dec 19, 2016 at 1:41 AM, Philip Prindeville
<philipp_s...@redfish-solutions.com> wrote:
> Hi.
>
> I’m trying to add the Intel e1000e, igb, and ixgbe drivers that are on Source 
> Forge.
>
> A snapshot of my work is here:
>
> https://github.com/pprindeville/packages/tree/sf-ether
>
> When I build this as “make -j1 V=s” using a mostly unmodified x86_64 generic 
> configuration, I get:
>
>
>
> make[3]: Entering directory 
> `/home/philip/bertram/bmu-philip.sanity/openwrt/feeds/packages/kernel/e1000e'
> . /home/philip/bertram/bmu-philip.sanity/openwrt/include/shell.sh; gzip -dc 
> /home/philip/bertram/bmu-philip.sanity/openwrt/dl/e1000e-3.3.5.3.tar.gz | tar 
> -C 
> /home/philip/bertram/bmu-philip.sanity/openwrt/build_dir/target-x86_64_musl-1.1.15_powercode-bmu/linux-x86_64/e1000e-3.3.5.3/..
>  -xf -
> touch 
> /home/philip/bertram/bmu-philip.sanity/openwrt/build_dir/target-x86_64_musl-1.1.15_powercode-bmu/linux-x86_64/e1000e-3.3.5.3/.prepared_b318088b5b0515ca987313e94558d492
> rm -f 
> /home/philip/bertram/bmu-philip.sanity/openwrt/staging_dir/target-x86_64_musl-1.1.15_powercode-bmu/stamp/.e1000e_installed
> (cd 
> /home/philip/bertram/bmu-philip.sanity/openwrt/build_dir/target-x86_64_musl-1.1.15_powercode-bmu/linux-x86_64/e1000e-3.3.5.3/./;
>  if [ -x ./configure ]; then find 
> /home/philip/bertram/bmu-philip.sanity/openwrt/build_dir/target-x86_64_musl-1.1.15_powercode-bmu/linux-x86_64/e1000e-3.3.5.3/
>  -name config.guess | xargs -r chmod u+w; find 
> /home/philip/bertram/bmu-philip.sanity/openwrt/build_dir/target-x86_64_musl-1.1.15_powercode-bmu/linux-x86_64/e1000e-3.3.5.3/
>  -name config.guess | xargs -r -n1 cp --remove-destination 
> /home/philip/bertram/bmu-philip.sanity/openwrt/scripts/config.guess; find 
> /home/philip/bertram/bmu-philip.sanity/openwrt/build_dir/target-x86_64_musl-1.1.15_powercode-bmu/linux-x86_64/e1000e-3.3.5.3/
>  -name config.sub | xargs -r chmod u+w; find 
> /home/philip/bertram/bmu-philip.sanity/openwrt/build_dir/target-x86_64_musl-1.1.15_powercode-bmu/linux-x86_64/e1000e-3.3.5.3/
>  -name config.sub | xargs -r -n1 cp --remove-destination 
> /home/philip/bertram/bmu-philip.sanity/openwrt/scripts/config.sub; 
> AR="x86_64-openwrt-linux-musl-gcc-ar" AS="x86_64-openwrt-linux-musl-gcc -c 
> -Os -pipe -fno-caller-saves -fno-plt -fhonour-copts 
> -Wno-error=unused-but-set-variable -Wno-error=unused-result -iremap 
> /home/philip/bertram/bmu-philip.sanity/openwrt/build_dir/target-x86_64_musl-1.1.15_powercode-bmu/linux-x86_64/e1000e-3.3.5.3:e1000e-3.3.5.3
>  -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro" 
> LD=x86_64-openwrt-linux-musl-ld NM="x86_64-openwrt-linux-musl-gcc-nm" 
> CC="x86_64-openwrt-linux-musl-gcc" GCC="x86_64-openwrt-linux-musl-gcc" 
> CXX="x86_64-openwrt-linux-musl-g++" 
> RANLIB="x86_64-openwrt-linux-musl-gcc-ranlib" 
> STRIP=x86_64-openwrt-linux-musl-strip 
> OBJCOPY=x86_64-openwrt-linux-musl-objcopy 
> OBJDUMP=x86_64-openwrt-linux-musl-objdump SIZE=x86_64-openwrt-linux-musl-size 
> CFLAGS="-Os -pipe -fno-caller-saves -fno-plt -fhonour-copts 
> -Wno-error=unused-but-set-variable -Wno-error=unused-result -iremap 
> /home/philip/bertram/bmu-philip.sanity/openwrt/build_dir/target-x86_64_musl-1.1.15_powercode-bmu/linux-x86_64/e1000e-3.3.5.3:e1000e-3.3.5.3
>  -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro " 
> CXXFLAGS="-Os -pipe -fno-caller-saves -fno-plt -fhonour-copts 
> -Wno-error=unused-but-set-variable -Wno-error=unused-result -iremap 
> /home/philip/bertram/bmu-philip.sanity/openwrt/build_dir/target-x86_64_musl-1.1.15_powercode-bmu/linux-x86_64/e1000e-3.3.5.3:e1000e-3.3.5.3
>  -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro " 
> CPPFLAGS="-I/home/philip/bertram/bmu-philip.sanity/openwrt/staging_dir/target-x86_64_musl-1.1.15_powercode-bmu/usr/include
>  
> -I/home/philip/bertram/bmu-philip.sanity/openwrt/staging_dir/target-x86_64_musl-1.1.15_powercode-bmu/include
>  
> -I/home/philip/bertram/bmu-philip.sanity/openwrt/staging_dir/toolchain-x86_64_gcc-5.3.0_musl-1.1.15/usr/include
>  
> -I/home/philip/bertram/bmu-philip.sanity/openwrt/staging_dir/toolchain-x86_64_gcc-5.3.0_musl-1.1.15/include/fortify
>  
> -I/home/philip/bertram/bmu-philip.sanity/openwrt/staging_dir/toolchain-x86_64_gcc-5.3.0_musl-1.1.15/include
>  " 
> LDFLAGS="-L/home/philip/bertram/bmu-philip.sanity/openwrt/staging_dir/target-x86_64_musl-1.1.15_powercode-bmu/usr/lib
>  
> -L/home/philip/bertram/bmu-philip.sanity/openwrt/staging_dir/target-x86_64_musl-1.1.15_powercode-bmu/lib
>  
> -L/home/philip/bertram/bmu-philip.sanity/openwrt/staging_dir/toolchain-x86_64_gcc-5.3.0_musl-1.1.15/usr/lib
>  
> -L/home/philip/bertram/bmu-philip.sanity/openwrt/staging_dir/toolchain-x86_64_gcc-5.3.0_musl-1.1.15/lib
>  -znow -zrelro "   ./configure --target=x86_64-openwrt-linux 
> --host=x86_64-openwrt-linux --build=x86_64-linux-gnu --program-prefix="" 
> --program-suffix="" --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin 
> --sbindir=/usr/sbin --libexecdir=/usr/lib --sysconfdir=/etc 
> --datadir=/usr/share --localstatedir=/var --mandir=/usr/man 
> --infodir=/usr/info --disable-nls   ; fi; )
> rm -f 
> /home/philip/bertram/bmu-philip.sanity/openwrt/build_dir/target-x86_64_musl-1.1.15_powercode-bmu/linux-x86_64/e1000e-3.3.5.3/.configured_*
> touch 
> /home/philip/bertram/bmu-philip.sanity/openwrt/build_dir/target-x86_64_musl-1.1.15_powercode-bmu/linux-x86_64/e1000e-3.3.5.3/.configured_yyyyyyyyy
> make -C 
> "/home/philip/bertram/bmu-philip.sanity/openwrt/build_dir/target-x86_64_musl-1.1.15_powercode-bmu/linux-x86_64/linux-4.4.14"
>  ARCH="x86" CROSS_COMPILE="x86_64-openwrt-linux-musl-" 
> M="/home/philip/bertram/bmu-philip.sanity/openwrt/build_dir/target-x86_64_musl-1.1.15_powercode-bmu/linux-x86_64/e1000e-3.3.5.3/src"
>  modules
> make[4]: Entering directory 
> `/home/philip/bertram/bmu-philip.sanity/openwrt/build_dir/target-x86_64_musl-1.1.15_powercode-bmu/linux-x86_64/linux-4.4.14'
>   CC [M]  
> /home/philip/bertram/bmu-philip.sanity/openwrt/build_dir/target-x86_64_musl-1.1.15_powercode-bmu/linux-x86_64/e1000e-3.3.5.3/src/netdev.o
> gcc: error: unrecognized command line option '-mskip-rax-setup'
> make[5]: *** 
> [/home/philip/bertram/bmu-philip.sanity/openwrt/build_dir/target-x86_64_musl-1.1.15_powercode-bmu/linux-x86_64/e1000e-3.3.5.3/src/netdev.o]
>  Error 1
> make[4]: *** 
> [_module_/home/philip/bertram/bmu-philip.sanity/openwrt/build_dir/target-x86_64_musl-1.1.15_powercode-bmu/linux-x86_64/e1000e-3.3.5.3/src]
>  Error 2
> make[4]: Leaving directory 
> `/home/philip/bertram/bmu-philip.sanity/openwrt/build_dir/target-x86_64_musl-1.1.15_powercode-bmu/linux-x86_64/linux-4.4.14'
> make[3]: *** 
> [/home/philip/bertram/bmu-philip.sanity/openwrt/build_dir/target-x86_64_musl-1.1.15_powercode-bmu/linux-x86_64/e1000e-3.3.5.3/.built]
>  Error 2
> make[3]: Leaving directory 
> `/home/philip/bertram/bmu-philip.sanity/openwrt/feeds/packages/kernel/e1000e'
> make[2]: *** [package/feeds/packages/e1000e/compile] Error 2
> make[2]: Leaving directory `/home/philip/bertram/bmu-philip.sanity/openwrt'
> make[1]: *** 
> [/home/philip/bertram/bmu-philip.sanity/openwrt/staging_dir/target-x86_64_musl-1.1.15_powercode-bmu/stamp/.package_compile]
>  Error 2
> make[1]: Leaving directory `/home/philip/bertram/bmu-philip.sanity/openwrt'
> make: *** [world] Error 2
>
>
> but looking through the logs, I don’t see anywhere else that -mskip-rax-setup 
> gets passed in as a compiler flag.  What am I missing?
>
> The option is coming from 
> build_dir/target-x86_64_musl-1.1.15_powercode-bmu/linux-x86_64/linux-4.4.14/arch/x86/Makefile:
>
>         # Use -mskip-rax-setup if supported.
>         KBUILD_CFLAGS += $(call cc-option,-mskip-rax-setup)
>
> It seems to have been introduced with:
>
> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/arch/x86/Makefile?id=d9ee948d82203811a545ba26b0172fce4970d1dc
>
>
> and the functionality in gcc here:
>
> ------------------------------------------------------------------------
> r218870 | hjl | 2014-12-18 10:35:45 -0700 (Thu, 18 Dec 2014) | 31 lines
>
> X86-64: Add -mskip-rax-setup
>
> The Linux kernel never passes floating point arguments around, vararg
> functions or not. Hence no vector registers are ever used when calling a
> vararg function.  But gcc still dutifully emits an "xor %eax,%eax" before
> each and every call of a vararg function.  Since no callee use that for
> anything, these instructions are redundant.
>
> This patch adds the -mskip-rax-setup option to skip setting up RAX
> register when SSE is disabled and there are no variable arguments passed
> in vector registers.  Since RAX register is used to avoid unnecessarily
> saving vector registers on stack when passing variable arguments, the
> impacts of this option are callees may waste some stack space, misbehave
> or jump to a random location.  GCC 4.4 or newer don't those issues,
> regardless the RAX register value since they don't check the RAX register
> value when SSE is disabled.
>
> gcc/
>
>         * config/i386/i386.c (ix86_expand_call): Skip setting up RAX
>         register for -mskip-rax-setup when there are no parameters
>         passed in vector registers.
>         * config/i386/i386.opt (mskip-rax-setup): New option.
>         * doc/invoke.texi: Document -mskip-rax-setup.
>
> gcc/testsuite/
>
>         * gcc.target/i386/amd64-abi-7.c: New tests.
>         * gcc.target/i386/amd64-abi-8.c: Likwise.
>         * gcc.target/i386/amd64-abi-9.c: Likwise.
>
> ————————————————————————————————————
>
> Why would the option -mskip-rax-setup be present when doing module kbuilds 
> out-of-tree, but not be present when building the kernel image itself or 
> building modules in-tree?
>
> Any help is appreciated.
>
> Thanks,
>
> -Philip
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel@lists.openwrt.org
> https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Maybe your host gcc is being picked by `make` ?
In that case, it probably detects that option as valid/available.

I don't know how to better address this ; I'd assume, maybe by
ensuring that the CC variable points to the right GCC.
Tho, curiously,  CROSS_COMPILE="x86_64-openwrt-linux-musl-"   should
that be x86_64-openwrt-linux-musl-gcc ?

Maybe, also look for missing env vars that point to the right GCC.
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to