Advisory: Updated gcc adds support for retpoline Spectre mitigation This update provides and update to 5.5.0 maintenance release and adds support for retpoline, a mitigation technique for CVE-2017-5715 [branch target injection] aka 'Spectre Variant 2' that is needed atleast for the kernels. SRPMS: gcc-5.5.0-1.mga6.src.rpm i586: gcc-5.5.0-1.mga6.i586.rpm gcc-c++-5.5.0-1.mga6.i586.rpm gcc-cpp-5.5.0-1.mga6.i586.rpm gcc-doc-5.5.0-1.mga6.noarch.rpm gcc-gfortran-5.5.0-1.mga6.i586.rpm gcc-gnat-5.5.0-1.mga6.i586.rpm gcc-java-5.5.0-1.mga6.i586.rpm gcc-objc-5.5.0-1.mga6.i586.rpm gcc-objc++-5.5.0-1.mga6.i586.rpm gcc-plugins-5.5.0-1.mga6.i586.rpm gcj-tools-5.5.0-1.mga6.i586.rpm libasan2-5.5.0-1.mga6.i586.rpm libasan-devel-5.5.0-1.mga6.i586.rpm libatomic1-5.5.0-1.mga6.i586.rpm libatomic-devel-5.5.0-1.mga6.i586.rpm libcilkrts5-5.5.0-1.mga6.i586.rpm libcilkrts-devel-5.5.0-1.mga6.i586.rpm libgcc1-5.5.0-1.mga6.i586.rpm libgcj16-5.5.0-1.mga6.i586.rpm libgcj16-base-5.5.0-1.mga6.i586.rpm libgcj16-src-5.5.0-1.mga6.i586.rpm libgcj_bc1-5.5.0-1.mga6.i586.rpm libgcj-devel-5.5.0-1.mga6.i586.rpm libgcj-static-devel-5.5.0-1.mga6.i586.rpm libgfortran3-5.5.0-1.mga6.i586.rpm libgnat1-5.5.0-1.mga6.i586.rpm libgomp1-5.5.0-1.mga6.i586.rpm libgomp-devel-5.5.0-1.mga6.i586.rpm libitm1-5.5.0-1.mga6.i586.rpm libitm-devel-5.5.0-1.mga6.i586.rpm libobjc4-5.5.0-1.mga6.i586.rpm libquadmath0-5.5.0-1.mga6.i586.rpm libquadmath-devel-5.5.0-1.mga6.i586.rpm libstdc++6-5.5.0-1.mga6.i586.rpm libstdc++-devel-5.5.0-1.mga6.i586.rpm libstdc++-docs-5.5.0-1.mga6.noarch.rpm libstdc++-static-devel-5.5.0-1.mga6.i586.rpm libubsan0-5.5.0-1.mga6.i586.rpm libubsan-devel-5.5.0-1.mga6.i586.rpm libvtv0-5.5.0-1.mga6.i586.rpm libvtv-devel-5.5.0-1.mga6.i586.rpm x86_64; gcc-5.5.0-1.mga6.x86_64.rpm gcc-c++-5.5.0-1.mga6.x86_64.rpm gcc-cpp-5.5.0-1.mga6.x86_64.rpm gcc-doc-5.5.0-1.mga6.noarch.rpm gcc-gfortran-5.5.0-1.mga6.x86_64.rpm gcc-gnat-5.5.0-1.mga6.x86_64.rpm gcc-java-5.5.0-1.mga6.x86_64.rpm gcc-objc-5.5.0-1.mga6.x86_64.rpm gcc-objc++-5.5.0-1.mga6.x86_64.rpm gcc-plugins-5.5.0-1.mga6.x86_64.rpm gcj-tools-5.5.0-1.mga6.x86_64.rpm lib64gcj16-5.5.0-1.mga6.x86_64.rpm lib64gcj_bc1-5.5.0-1.mga6.x86_64.rpm lib64gcj-devel-5.5.0-1.mga6.x86_64.rpm lib64gcj-static-devel-5.5.0-1.mga6.x86_64.rpm libasan2-5.5.0-1.mga6.x86_64.rpm libasan-devel-5.5.0-1.mga6.x86_64.rpm libatomic1-5.5.0-1.mga6.x86_64.rpm libatomic-devel-5.5.0-1.mga6.x86_64.rpm libcilkrts5-5.5.0-1.mga6.x86_64.rpm libcilkrts-devel-5.5.0-1.mga6.x86_64.rpm libgcc1-5.5.0-1.mga6.x86_64.rpm libgcj16-base-5.5.0-1.mga6.x86_64.rpm libgcj16-src-5.5.0-1.mga6.x86_64.rpm libgfortran3-5.5.0-1.mga6.x86_64.rpm libgnat1-5.5.0-1.mga6.x86_64.rpm libgomp1-5.5.0-1.mga6.x86_64.rpm libgomp-devel-5.5.0-1.mga6.x86_64.rpm libitm1-5.5.0-1.mga6.x86_64.rpm libitm-devel-5.5.0-1.mga6.x86_64.rpm liblsan0-5.5.0-1.mga6.x86_64.rpm liblsan-devel-5.5.0-1.mga6.x86_64.rpm libobjc4-5.5.0-1.mga6.x86_64.rpm libquadmath0-5.5.0-1.mga6.x86_64.rpm libquadmath-devel-5.5.0-1.mga6.x86_64.rpm libstdc++6-5.5.0-1.mga6.x86_64.rpm libstdc++-devel-5.5.0-1.mga6.x86_64.rpm libstdc++-docs-5.5.0-1.mga6.noarch.rpm libstdc++-static-devel-5.5.0-1.mga6.x86_64.rpm libtsan0-5.5.0-1.mga6.x86_64.rpm libtsan-devel-5.5.0-1.mga6.x86_64.rpm libubsan0-5.5.0-1.mga6.x86_64.rpm libubsan-devel-5.5.0-1.mga6.x86_64.rpm libvtv0-5.5.0-1.mga6.x86_64.rpm libvtv-devel-5.5.0-1.mga6.x86_64.rpm References: https://gcc.gnu.org/gcc-5/
This one needs to go aut before or at the same as the next kernel update (probably 4.14.18)
Priority: Normal => High
Mageia 6 :: x86_64 Installed all the packages and then updated them. Clean update. On this machine there was still a copy of the docker sources from an unrelated update. Rebuilding this should exercize some of the packages, the compiler anyway. $ cat SPECS/docker.spec | grep -i gcc BuildRequires: gcc $ bm -l < This ran smoothly and finished with: > + /usr/bin/rm -rf /home/lcl/qa/docker/after/docker/BUILDROOT/docker-17.03.1-4.mga6.x86_64 + exit 0 succeeded! Looking for ways to test some of the other components.
CC: (none) => tarazed25
!My Fortran days are 30 years in the past so I lifted a snippet from the IBM Knowledge Center. PROGRAM CALCULATE ! ! Program to calculate the sum of up to n values of x**3 ! where negative values are ignored. ! IMPLICIT NONE INTEGER I,N REAL SUM,X,Y READ(*,*) N WRITE(*,*) N SUM=0 DO I=1,N READ(*,*) X WRITE(*,*) X IF (X.GE.0.0) THEN Y=X**3 SUM=SUM+Y END IF END DO WRITE(*,*) 'This is the sum of the positive cubes:',SUM END $ gfortran -o calculate calculate.f90 $ ./calculate 4 4 2.0 2.00000000 -3.0 -3.00000000 5.0 5.00000000 3.0 3.00000000 This is the sum of the positive cubes: 160.000000 Big deal. $ urpmq -i gcj-tools $MIRRORLIST: media/core/release/media_info/20170714-192548-info.xml.lzma Name : gcj-tools Version : 5.4.0 Release : 5.mga6 Group : Development/Java Size : 696736 Architecture: x86_64 Source RPM : gcc-5.4.0-5.mga6.src.rpm URL : http://gcc.gnu.org/ Summary : Java related tools from gcc 5.4.0 Description : This package includes Java related tools built from gcc 5.4.0: * gij: a Java ByteCode Interpreter * gcjh: generate header files from class files * jcf-dump: print information about class files * gcj-dbtool: tool for manipulating class file databases * grmic: generate stubs for Remote Method Invocation * grmiregistry: the remote object registry * aot-compile: ahead-of-time compiler * gappletviewer * gc-analyze * gjar * gjarsigner * gjavah * gkeytool * gnative2ascii * gorbd * grmid * gtnameserv * gserialver Leaving that alone. Giving this an OK for x86_64 but others might like to try java or objective C. This is one update which should definitely be tested on 32 bits.
Whiteboard: (none) => MGA6-64-OK
Docker uses golang instead of gcc.
Maybe so but isn't gcc involved as well? BuildRequires: gcc BuildRequires: glibc-static-devel # ensure build uses golang 1.4 or above BuildRequires: golang >= 1.7 BuildRequires: libsqlite3-devel BuildRequires: golang-net-devel BuildRequires: go-md2man BuildRequires: device-mapper-devel BuildRequires: btrfs-devel BuildRequires: systemd-devel
On the other hand I don't really understand the spec file so gcc needs another compilation test. Tomorrow sometime.
Whiteboard: MGA6-64-OK => (none)
Honestly I don't know whether GCC is used to build some portion of it or not, one would have to check a build log to know for sure, but it's probably better to build something that's actually written in C to be sure to have a good test :o).
Blocks: (none) => 22533
kernel in bug 22533 is now built with this gcc-5.5.0-1 so we know atleast it works there :)
System: MGA6::x86_64 Dell Precision T1600 I've compiled a new kernel and other packages without any issues. Cheers, Stig
CC: (none) => smelror
@stig, David and tmb. We can't do better than that but for form's sake I shall hack something in C.
Created attachment 9956 [details] Generate a number of "hailstones" $ gcc -o hailstones hailstones.c $ hailstones <some integer>
Created attachment 9958 [details] Program containing embedded assembler code $ gcc -o mmx mmx.c $ ./mmx MMX is NOT detected !
Found a couple of trivial programs in my archives - see attachments. They work OK anyway.
Also ran a local build of openjpeg2 which is all C as far as I can see. $ mgarepo co -d 6 openjpeg2 $ cd openjpeg2 $ bm -ls $ bm -l That worked fine.
Mageia 6:: 1586 in virtualbox Installed all the packages. Used the scripts from the 64-bit tests: $ gfortran -o calculate calculate.f90 $ ./calculate 7 7 1 1.00000000 4 4.00000000 5 5.00000000 2 2.00000000 9 9.00000000 10 10.0000000 8 8.00000000 This is the sum of the positive cubes: 2439.00000 $ gcc -o hailstones hailstones.c $ ./hailstones 200 26 hailstones generated from 200 $ gcc -o mmx mmx.c $ ./mmx MMX is NOT detected ! For the local build hit a problem trying to connect to SVN. Using the same public and private keys and config file as on the host. svn: E210002: To better debug SSH connection problems, remove the -q option from 'ssh' in the [tunnels] section of your Subversion configuration file. svn: E210002: Network connection closed unexpectedly Need to investigate this.
Installed and tested without issues. Tested by compiling several C and C++ projects (including some from github), with unit tests, and running both the main programs and the tests. Also cross-compiled to target a x86 arch on a x86_64 build system. No noticeable regressions. System: Mageia 6, x86_64, Intel CPU. $ uname -a Linux marte 4.14.16-desktop-1.mga6 #1 SMP Wed Jan 31 20:50:08 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux $ rpm -qa | egrep 'gcc|stdc' | sort gcc-5.5.0-1.mga6 gcc-c++-5.5.0-1.mga6 gcc-cpp-5.5.0-1.mga6 libgcc1-5.5.0-1.mga6 libstdc++5-3.3.6-15.mga6 libstdc++5-devel-3.3.6-15.mga6 libstdc++6-5.5.0-1.mga6 libstdc++-devel-5.5.0-1.mga6
CC: (none) => mageia
Blocks: (none) => 22543
Blocks: (none) => 22544
Advisory committed to svn. Validating the update.
Keywords: (none) => advisory, validated_updateCC: (none) => davidwhodgins, sysadmin-bugs
An update for this issue has been pushed to the Mageia Updates repository. https://advisories.mageia.org/MGASA-2018-0124.html
Status: NEW => RESOLVEDResolution: (none) => FIXED