I found indications that perhaps both problems are in fact caused by ld no longer including undefined symbols in the output.
Here is a section from the working module built with old binutils: 0012980: 0047 4343 3a20 2844 6562 6961 6e20 342e .GCC: (Debian 4. 0012990: 392e 322d 3130 2920 342e 392e 3200 0047 9.2-10) 4.9.2..G 00129a0: 4343 3a20 2844 6562 6961 6e20 342e 392e CC: (Debian 4.9. 00129b0: 322d 3130 2920 342e 392e 3200 0047 4343 2-10) 4.9.2..GCC 00129c0: 3a20 2844 6562 6961 6e20 342e 392e 322d : (Debian 4.9.2- 00129d0: 3130 2920 342e 392e 3200 0047 4343 3a20 10) 4.9.2..GCC: 00129e0: 2844 6562 6961 6e20 342e 392e 322d 3130 (Debian 4.9.2-10 00129f0: 2920 342e 392e 3200 0047 4343 3a20 2844 ) 4.9.2..GCC: (D 0012a00: 6562 6961 6e20 342e 392e 322d 3130 2920 ebian 4.9.2-10) 0012a10: 342e 392e 3200 0047 4343 3a20 2844 6562 4.9.2..GCC: (Deb 0012a20: 6961 6e20 342e 392e 322d 3130 2920 342e ian 4.9.2-10) 4. 0012a30: 392e 3200 0047 4343 3a20 2844 6562 6961 9.2..GCC: (Debia 0012a40: 6e20 342e 392e 322d 3130 2920 342e 392e n 4.9.2-10) 4.9. 0012a50: 3200 0047 4343 3a20 2844 6562 6961 6e20 2..GCC: (Debian 0012a60: 342e 392e 322d 3130 2920 342e 392e 3200 4.9.2-10) 4.9.2. 0012a70: 002e 7379 6d74 6162 002e 7374 7274 6162 ..symtab..strtab 0012a80: 002e 7368 7374 7274 6162 002e 6e6f 7465 ..shstrtab..note 0012a90: 2e67 6e75 2e62 7569 6c64 2d69 6400 2e72 .gnu.build-id..r 0012aa0: 656c 612e 7465 7874 002e 7265 6c61 2e69 ela.text..rela.i 0012ab0: 6e69 742e 7465 7874 002e 7265 6c61 2e66 nit.text..rela.f 0012ac0: 6978 7570 002e 7265 6c61 2e65 7869 742e ixup..rela.exit. 0012ad0: 7465 7874 002e 7265 6c61 2e74 6578 742e text..rela.text. 0012ae0: 756e 6c69 6b65 6c79 002e 7265 6c61 5f5f unlikely..rela__ 0012af0: 6b73 796d 7461 625f 6770 6c00 2e72 656c ksymtab_gpl..rel 0012b00: 612e 726f 6461 7461 002e 7265 6c61 5f5f a.rodata..rela__ 0012b10: 6275 675f 7461 626c 6500 2e72 6f64 6174 bug_table..rodat 0012b20: 612e 7374 7231 2e38 002e 7265 6c61 5f5f a.str1.8..rela__ 0012b30: 6d63 6f75 6e74 5f6c 6f63 002e 7265 6c61 mcount_loc..rela 0012b40: 5f5f 6578 5f74 6162 6c65 005f 5f6b 7379 __ex_table.__ksy 0012b50: 6d74 6162 5f73 7472 696e 6773 002e 6d6f mtab_strings..mo 0012b60: 6469 6e66 6f00 5f5f 7665 7273 696f 6e73 dinfo.__versions 0012b70: 002e 7265 6c61 5f5f 6b63 7263 7461 625f ..rela__kcrctab_ 0012b80: 6770 6c00 2e72 656c 612e 6461 7461 002e gpl..rela.data.. 0012b90: 7265 6c61 2e64 6174 612e 7265 6c2e 726f rela.data.rel.ro 0012ba0: 002e 7265 6c61 2e6f 7064 002e 7265 6c61 ..rela.opd..rela 0012bb0: 2e74 6f63 002e 7265 6c61 2e67 6e75 2e6c .toc..rela.gnu.l 0012bc0: 696e 6b6f 6e63 652e 7468 6973 5f6d 6f64 inkonce.this_mod 0012bd0: 756c 6500 2e62 7373 002e 7374 7562 7300 ule..bss..stubs. 0012be0: 2e66 7472 6163 652e 7472 616d 7000 2e63 .ftrace.tramp..c 0012bf0: 6f6d 6d65 6e74 0000 0000 0000 0000 0000 omment.......... And the same section from the new binutils build (the disassenmbled module is totally identical as far as code is concerned): 0012980: 0047 4343 3a20 2844 6562 6961 6e20 342e .GCC: (Debian 4. 0012990: 392e 322d 3130 2920 342e 392e 3200 0047 9.2-10) 4.9.2..G 00129a0: 4343 3a20 2844 6562 6961 6e20 342e 392e CC: (Debian 4.9. 00129b0: 322d 3130 2920 342e 392e 3200 0047 4343 2-10) 4.9.2..GCC 00129c0: 3a20 2844 6562 6961 6e20 342e 392e 322d : (Debian 4.9.2- 00129d0: 3130 2920 342e 392e 3200 0047 4343 3a20 10) 4.9.2..GCC: 00129e0: 2844 6562 6961 6e20 342e 392e 322d 3130 (Debian 4.9.2-10 00129f0: 2920 342e 392e 3200 0047 4343 3a20 2844 ) 4.9.2..GCC: (D 0012a00: 6562 6961 6e20 342e 392e 322d 3130 2920 ebian 4.9.2-10) 0012a10: 342e 392e 3200 0047 4343 3a20 2844 6562 4.9.2..GCC: (Deb 0012a20: 6961 6e20 342e 392e 322d 3130 2920 342e ian 4.9.2-10) 4. 0012a30: 392e 3200 0047 4343 3a20 2844 6562 6961 9.2..GCC: (Debia 0012a40: 6e20 342e 392e 322d 3130 2920 342e 392e n 4.9.2-10) 4.9. 0012a50: 3200 0047 4343 3a20 2844 6562 6961 6e20 2..GCC: (Debian 0012a60: 342e 392e 322d 3130 2920 342e 392e 3200 4.9.2-10) 4.9.2. 0012a70: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 0012a80: 0000 0000 0000 0000 0000 0000 0300 0001 ................ 0012a90: 0000 0000 0000 0000 0000 0000 0000 0000 ................ So some stuff was dropped by the new binutils, just like it was from vmlinux on ppc64el, and that could very well be what the module loading code was looking for. I can't find any way to undo this change to ld about dropping undefined symbols from the output. -- Len Sorensen