Fedora – F28 GCC 8 Now OK with Kernel 4.16.7, and fix for Grub-Customizer..

Tried Kernel 4.16.7 on Fedora 28 (GCC 8.0.1), and this now compiles successfully, although still with a lot of ‘warnings’..

I use grub-customizer with each new kernel, and the F28 version of this fails:

# grub-customizer
Error creating proxy: The connection is closed (g-io-error-quark, 18)
 *** initializing (w/o specified bootloader type)…
 * reading partition info…
/usr/include/c++/8/bits/basic_string.h:1048: std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::reference std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::operator[](std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::reference = char&; std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::size_type = long unsigned int]: Assertion '__pos <= size()' failed.
Aborted (core dumped)

Workaround, is to install the F27 version:

rpm -Uvh grub-customizer-5.0.6-6.fc27.x86_64.rpm --force

– and this works OK, again..

Robert Gadsdon.   May 2, 2018.

Fedora – 28 Released, but Fails with GCC 8 and Kernel 4.16…

Fedora 28 has been released, but this includes GCC 8 (8.0.1) which – currently – is not capable of compiling Kernel 4.16 as-is (tested with 4.16.6):

 ..................................
CC /usr/src/linux-4.16.6/tools/objtool/objtool.o
 CC /usr/src/linux-4.16.6/tools/objtool/libstring.o
 CC /usr/src/linux-4.16.6/tools/objtool/str_error_r.o
../lib/str_error_r.c: In function ‘str_error_r’:
../lib/str_error_r.c:25:3: error: passing argument 1 to restrict-qualified parameter aliases with argument 5 [-Werror=restrict]
 snprintf(buf, buflen, "INTERNAL ERROR: strerror_r(%d, %p, %zd)=%d", errnum, buf, buflen, err);
 ^~~~~~~~
 HOSTCC scripts/mod/file2alias.o
cc1: all warnings being treated as errors
.....................................

See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84919

Kernel 4.17 (4.17-rc3) does compile, but with multiple warnings:

 .....................
CC lib/earlycpio.o
drivers/dma/dmaengine.o: warning: objtool: dma_async_device_register()+0x22: sibling call from callable instruction with modified stack frame
lib/earlycpio.o: warning: objtool: find_cpio_data()+0x218: sibling call from callable instruction with modified stack frame
 CC lib/extable.o
 CC drivers/dma/virt-dma.o
fs/nfsd/vfs.o: warning: objtool: nfsd_lookup_dentry()+0x6d: sibling call from callable instruction with modified stack frame
fs/nfsd/vfs.o: warning: objtool: nfsd_vfs_write()+0x230: sibling call from callable instruction with modified stack frame
fs/nfsd/vfs.o: warning: objtool: nfsd_symlink()+0x92: sibling call from callable instruction with modified stack frame
fs/nfsd/vfs.o: warning: objtool: nfsd_link()+0xdd: sibling call from callable instruction with modified stack frame
fs/nfsd/vfs.o: warning: objtool: nfsd_unlink()+0x8b: sibling call from callable instruction with modified stack frame
fs/nfsd/vfs.o: warning: objtool: nfsd_setattr()+0x140: sibling call from callable instruction with modified stack frame
fs/nfsd/vfs.o: warning: objtool: do_nfsd_create()+0x114: sibling call from callable instruction with modified stack frame
fs/nfsd/vfs.o: warning: objtool: nfsd_create()+0xbf: sibling call from callable instruction with modified stack frame
fs/nfsd/vfs.o: warning: objtool: nfsd_racache_shutdown()+0xb: sibling call from callable instruction with modified stack frame
fs/nfsd/vfs.o: warning: objtool: nfsd_racache_init()+0x3e: sibling call from callable instruction with modified stack frame
 CC [M] fs/nfsd/export.o
....................................
 CC lib/kobject.o
In function ‘fill_kobj_path’,
 inlined from ‘kobject_get_path’ at lib/kobject.c:155:2:
lib/kobject.c:128:3: warning: ‘strncpy’ output truncated before terminating nul copying as many bytes from a string as its length [-Wstringop-truncation]
 strncpy(path + length, kobject_name(parent), cur);
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/kobject.c: In function ‘kobject_get_path’:
lib/kobject.c:125:13: note: length computed here
 int cur = strlen(kobject_name(parent));
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
.................................   etc..........

Despite all this, the resulting kernel loads/runs OK:

# uname -a
Linux rgup 4.17.0-rc3 #1 SMP Sun Apr 29 18:19:03 PDT 2018 x86_64 x86_64 x86_64 GNU/Linux

So, for the time being, I am staying with Fedora 27 on my main system..

Robert Gadsdon.   May 2, 2018.

VMware – Patch, If You Need Better ‘Meltdown/Spectre’ Protection..

Thanks – again – to Michal Kubeček, who  has pointed out that there is still a vulnerability in some VMware (vmmon) code, that is not mitigated by Kernel/Compiler retpoline fixes, as it is written in assembler..   ( See comment on previous article – http://rglinuxtech.com/?p=2277 )

He has provided an appropriate fix for this, at https://github.com/mkubecek/vmware-host-modules/tree/player-14.1.1

Robert Gadsdon.   April 30, 2018.
(updated May 2, to fix missing text..)

 

Kernel – 4.17-rc3 Released – Still OK with Latest NVIDIA and VMware..

Kernel 4.17-rc3 is out, and brief details of changes from -rc2 are here:  http://lkml.iu.edu/hypermail/linux/kernel/1804.3/05507.html

Tested with NVIDIA 396.18 and VMware 14.1.1 (vmmon and vmnet), and all still compile OK..

Robert Gadsdon.   April 29, 2018.

IA64 – Updated to 4.17-rc1..

Updated the IA64 system (HP RX2600) to 4.17-rc1, and the compile and install/boot was without incident..    The python-related warning with 4.16 was no longer present.. (see http://rglinuxtech.com/?p=2222 ).

...............
[ OK ] Started Getty on tty1.
[ OK ] Reached target Login Prompts.
[ OK ] Started Login Service.
[ OK ] Reached target Multi-User System.
[ OK ] Reached target Graphical Interface.

This is rgia64.unknown_domain (Linux ia64 4.17.0-rc1) 13:07:54
........................
# uname -a
Linux rgia64 4.17.0-rc1 #1 SMP Mon Apr 16 12:18:06 PDT 2018 ia64 Madison GenuineIntel GNU/Linux

Robert Gadsdon.  April 16, 2018.

Kernel – 4.17-rc1 Out – OK with Latest NVIDIA and VMware..

Kernel 4.17-rc1 has been released, and brief details are here:  http://lkml.iu.edu/hypermail/linux/kernel/1804.1/06654.html

With the latest code-on-git milestone reached, there is speculation that a version bump to 5.x might be a possibility – but not just yet!

The latest NVIDIA driver (396.18) and VMware (14.1.1vmmon and vmnet) all compile OK..

Robert Gadsdon.   April 15, 2018

NVIDIA – Finally, a 4.16-Compatible Driver..

NVIDIA has released beta driver 396.18, and – at last – this is compatible with Kernel 4.16 (tested with 4.16.1).

Details are here:  http://www.nvidia.com/Download/driverResults.aspx/133571/en-us     The ‘Release Highlights’ do not even mention kernel support..

 ........................
Building modules, stage 2.
 MODPOST 4 modules
 CC /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-396.18/kernel/nvidia-drm.mod.o
 LD [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-396.18/kernel/nvidia-drm.ko
 CC /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-396.18/kernel/nvidia-modeset.mod.o
 LD [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-396.18/kernel/nvidia-modeset.ko
 CC /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-396.18/kernel/nvidia-uvm.mod.o
 LD [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-396.18/kernel/nvidia-uvm.ko
 CC /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-396.18/kernel/nvidia.mod.o
 LD [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-396.18/kernel/nvidia.ko
make[2]: Leaving directory '/usr/src/linux-4.16.1'
make[1]: Leaving directory '/usr/src/linux-4.16.1'

Robert Gadsdon.   April 10, 2018

Kernel – Interim Changes for 4.17 – OK So Far..

Testing the changes submitted to date for Kernel 4.17-rc1, which is – of course – not due out just yet..   Kernel version obtained from https://github.com/torvalds/linux today – April 8.

Latest VMware – 14.1.1 – vmnet/vmmon compile OK, and so does the latest NVIDIA – 390.48, with the 4.16 patch..

More changes to come, but all is good – so far..

Robert Gadsdon  April 8, 2018

 

Kernel – 4.16 Released – OK with Latest VMware, and (patched) NVIDIA..

Kernel version 4.16 is out, and brief details of changes since -rc7 are here:  http://lkml.iu.edu/hypermail/linux/kernel/1804.0/00174.html

$ uname -a
Linux rglx 4.16.0 #1 SMP Sun Apr 1 15:20:00 PDT 2018 x86_64 x86_64 x86_64 GNU/Linux

This release is OK with VMware 14.1.1, and with NVIDIA 384.130/390.48 with the swiotlb-removing patch.. ( see http://rglinuxtech.com/?p=2227 ).

Hopefully NVIDIA will get round to releasing a 4.16-compatible version, soon..

Robert Gadsdon.   April 1, 2018.

 

NVIDIA – New Driver 384.130 – Still Fails with 4.16..

NVIDIA have released driver 384.130, and details are here:  http://www.nvidia.com/download/driverResults.aspx/132524/en-us

The ‘Release Highlights’ clearly specify ”Improved compatibility with recent Linux kernels.”, and yet it still fails with Kernel 4.16 (tested with 4.16-rc7):

..................
ld -r -o /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-384.130/kernel/nvidia-modeset/nv-modeset-interface.o /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-384.130/kernel/nvidia-modeset/nvidia-modeset-linux.o
 Building modules, stage 2.
 MODPOST 4 modules
WARNING: "swiotlb_map_sg_attrs" [/home/rgadsdon/kernel/NVIDIA-Linux-x86_64-384.130/kernel/nvidia.ko] undefined!
 CC /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-384.130/kernel/nvidia-drm.mod.o
 LD [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-384.130/kernel/nvidia-drm.ko
 CC /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-384.130/kernel/nvidia-modeset.mod.o
 LD [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-384.130/kernel/nvidia-modeset.ko
 CC /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-384.130/kernel/nvidia-uvm.mod.o
 LD [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-384.130/kernel/nvidia-uvm.ko
 CC /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-384.130/kernel/nvidia.mod.o
 LD [M] /home/rgadsdon/kernel/NVIDIA-Linux-x86_64-384.130/kernel/nvidia.ko
make[2]: Leaving directory '/usr/src/linux-4.16-rc7'
make[1]: Leaving directory '/usr/src/linux-4.16-rc7'

Speculation:
It is just possible that this update has been released in error, as Kernel 4.16 is due to be out very soon, and – typically – the phrase ”Improved compatibility with recent Linux kernels.” signifies compatibility with the next major release, and the previous version – 384.111 – was already compatible with Kernel 4.15…

Robert Gadsdon.  March 29, 2018.