Bug 22525 - Update request: gcc 5.5.0
Summary: Update request: gcc 5.5.0
Status: RESOLVED FIXED
Alias: None
Product: Mageia
Classification: Unclassified
Component: Security (show other bugs)
Version: 6
Hardware: All Linux
Priority: High major
Target Milestone: ---
Assignee: QA Team
QA Contact: Sec team
URL:
Whiteboard: MGA6-64-OK
Keywords: advisory, validated_update
Depends on:
Blocks: 22533 22543 22544
  Show dependency treegraph
 
Reported: 2018-02-05 20:29 CET by Thomas Backlund
Modified: 2018-02-08 12:32 CET (History)
5 users (show)

See Also:
Source RPM: gcc
CVE:
Status comment:


Attachments
Generate a number of "hailstones" (782 bytes, text/plain)
2018-02-06 13:08 CET, Len Lawrence
Details
Program containing embedded assembler code (624 bytes, text/plain)
2018-02-06 14:04 CET, Len Lawrence
Details

Description Thomas Backlund 2018-02-05 20:29:19 CET
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/
Comment 1 Thomas Backlund 2018-02-05 20:30:28 CET
This one needs to go aut before or at the same as the next kernel update (probably 4.14.18)

Priority: Normal => High

Comment 2 Len Lawrence 2018-02-05 23:59:00 CET
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

Comment 3 Len Lawrence 2018-02-06 00:32:51 CET
!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

Comment 4 David Walser 2018-02-06 00:42:39 CET
Docker uses golang instead of gcc.
Comment 5 Len Lawrence 2018-02-06 01:58:18 CET
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
Comment 6 Len Lawrence 2018-02-06 02:53:35 CET
On the other hand I don't really understand the spec file so gcc needs another compilation test.  Tomorrow sometime.
Len Lawrence 2018-02-06 02:54:16 CET

Whiteboard: MGA6-64-OK => (none)

Comment 7 David Walser 2018-02-06 03:30:36 CET
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).
Thomas Backlund 2018-02-06 07:30:29 CET

Blocks: (none) => 22533

Comment 8 Thomas Backlund 2018-02-06 07:31:24 CET
kernel in bug 22533 is now built with this gcc-5.5.0-1 so we know atleast it works there :)
Comment 9 Stig-Ørjan Smelror 2018-02-06 10:02:20 CET
System: MGA6::x86_64 Dell Precision T1600

I've compiled a new kernel and other packages without any issues.

Cheers,
Stig

CC: (none) => smelror

Comment 10 Len Lawrence 2018-02-06 10:29:21 CET
@stig, David and tmb.  We can't do better than that but for form's sake I shall hack something in C.
Comment 11 Len Lawrence 2018-02-06 13:08:00 CET
Created attachment 9956 [details]
Generate a number of "hailstones"

$ gcc -o hailstones hailstones.c
$ hailstones <some integer>
Comment 12 Len Lawrence 2018-02-06 14:04:38 CET
Created attachment 9958 [details]
Program containing embedded assembler code

$ gcc -o mmx mmx.c
$ ./mmx
MMX is NOT detected !
Comment 13 Len Lawrence 2018-02-06 14:06:05 CET
Found a couple of trivial programs in my archives - see attachments.
They work OK anyway.
Comment 14 Len Lawrence 2018-02-06 14:21:31 CET
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.
Len Lawrence 2018-02-06 18:35:42 CET

Whiteboard: (none) => MGA6-64-OK

Comment 15 Len Lawrence 2018-02-06 19:27:36 CET
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.
Comment 16 PC LX 2018-02-07 21:15:53 CET
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

Thomas Backlund 2018-02-08 10:07:42 CET

Blocks: (none) => 22543

Thomas Backlund 2018-02-08 10:09:22 CET

Blocks: (none) => 22544

Comment 17 Dave Hodgins 2018-02-08 11:42:25 CET
Advisory committed to svn. Validating the update.

Keywords: (none) => advisory, validated_update
CC: (none) => davidwhodgins, sysadmin-bugs

Comment 18 Mageia Robot 2018-02-08 12:32:09 CET
An update for this issue has been pushed to the Mageia Updates repository.

https://advisories.mageia.org/MGASA-2018-0124.html

Status: NEW => RESOLVED
Resolution: (none) => FIXED


Note You need to log in before you can comment on or make changes to this bug.