On Mon, 24 Apr 2017, Arnd Bergmann wrote:
I later tried all mips defconfigs with linux-4.3 and they all failed with gcc-4.1.3 but built fine with gcc-4.9. I've now tried decstation_defconfig in 4.8-rc11, and this is what I see for gcc-4.1.3
make O=build/mips/decstation_defconfig/ -skj30 CC=/home/arnd/cross-gcc/bin/mips-linux-gcc-4.1.3\ ARCH=mips -f Makefile CROSS_COMPILE=/home/arnd/cross-gcc/bin/mips-linux- /git/arm-soc/fs/dcache.c: In function '__d_move': /git/arm-soc/fs/dcache.c:2773: warning: 'n' may be used uninitialized in this function /git/arm-soc/fs/dcache.c: In function 'd_splice_alias': /git/arm-soc/fs/dcache.c:2529: warning: 'n' may be used uninitialized in this function /git/arm-soc/fs/dcache.c: In function 'd_add': /git/arm-soc/fs/dcache.c:2529: warning: 'n' may be used uninitialized in this function /git/arm-soc/mm/page-writeback.c: In function 'balance_dirty_pages_ratelimited': /git/arm-soc/mm/page-writeback.c:1627: warning: 'writeback' is used uninitialized in this function /git/arm-soc/mm/page-writeback.c:1628: warning: 'filepages' is used uninitialized in this function /git/arm-soc/mm/page-writeback.c:1628: warning: 'headroom' is used uninitialized in this function /git/arm-soc/mm/page-writeback.c: In function 'wb_over_bg_thresh': /git/arm-soc/mm/page-writeback.c:1956: warning: 'filepages' is used uninitialized in this function /git/arm-soc/mm/page-writeback.c:1956: warning: 'headroom' is used uninitialized in this function /git/arm-soc/net/core/flow_dissector.c: In function '__skb_flow_dissect': /git/arm-soc/net/core/flow_dissector.c:272: warning: 'vlan' may be used uninitialized in this function /git/arm-soc/fs/splice.c: In function 'iter_file_splice_write': /git/arm-soc/fs/splice.c:716: warning: 'ret' may be used uninitialized in this function /git/arm-soc/net/core/dev.c: In function 'validate_xmit_skb_list': /git/arm-soc/net/core/dev.c:3003: warning: 'tail' may be used uninitialized in this function /git/arm-soc/kernel/printk/printk.c: In function 'devkmsg_sysctl_set_loglvl': /git/arm-soc/kernel/printk/printk.c:161: warning: 'old' may be used uninitialized in this function /git/arm-soc/kernel/time/ntp.c: In function 'ntp_validate_timex': /git/arm-soc/kernel/time/ntp.c:707: warning: comparison is always false due to limited range of data type /git/arm-soc/kernel/time/ntp.c:709: warning: comparison is always false due to limited range of data type /git/arm-soc/kernel/time/timekeeping.c: In function 'get_device_system_crosststamp': /git/arm-soc/kernel/time/timekeeping.c:1084: warning: 'cs_was_changed_seq' may be used uninitialized in this function /git/arm-soc/net/sunrpc/xdr.c: In function 'xdr_stream_decode_string_dup': /git/arm-soc/include/linux/sunrpc/xdr.h:409: warning: 'len' may be used uninitialized in this function /git/arm-soc/crypto/drbg.c: In function 'drbg_kcapi_random': /git/arm-soc/crypto/drbg.c:1865: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See URL:http://gcc.gnu.org/bugs.html for instructions. /git/arm-soc/scripts/Makefile.build:300: recipe for target 'crypto/drbg.o' failed
So it still fails, but only because of one compiler error that I can avoid by disabling that driver, and you probably use a slightly patched compiler version that doesn't have this particular bug, or it was a regression between gcc-4.1.2 and 4.1.3.
Umm, I didn't build modules, sorry, because I don't usually use them with those systems. However I have completed this step now and it also worked just fine:
$ ls -la crypto/drbg.o -rw-r--r-- 1 macro macro 14096 Apr 24 18:59 crypto/drbg.o $ file crypto/drbg.o crypto/drbg.o: ELF 32-bit LSB MIPS-I relocatable, MIPS, version 1 (SYSV), not stripped $
so you are likely right that either I have a patch applied to my 4.1.2 build that has somehow fixed the ICE or it is a 4.1.3 regression (or a bad patch in your 4.1.3 build).
BTW I do see these `may be used uninitialized' warnings just as Geert does and even have a local patch, which I have neglected to submit, for a 64-bit configuration (`decstation_defconfig' is 32-bit) where in a single place -Werror turns it into a build failure. I do not consider it a big issue though, and might even wrap that patch up and submit sometime.
Maciej