Author Topic: GCC - updates  (Read 21064 times)

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
GCC - updates
« on: March 16, 2022, 09:57:02 am »
Hi  All,

These have all been posted in the FORTRAN thread (https://www.os2world.com/forum/index.php?topic=3017), however people may  not have realised that I've updated GCC recently.

I built:
- GCC 9.4.0 - https://smedley.id.au/tmp/gcc-9.4.0-os2-20220314b.zip
- GCC 10.3.0 - https://smedley.id.au/tmp/gcc-10.3.0-os2-20220314.zip
- GCC 11.2.0 -  https://smedley.id.au/tmp/gcc-11.2.0-os2-20220316.zip

These have  had various degrees of testing, and importantly, Dave has had issues building XUL.DLL from Mozilla with my builds vs the latest BWW builds.

Any and all feedback appreciated :)

Cheers,

Paul

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: GCC - updates
« Reply #1 on: March 20, 2022, 05:07:26 am »
Update for GCC  11.2.0: https://smedley.id.au/tmp/gcc-11.2.0-os2-20220320.zip

Rebuilt with -Os vs -O2  which avoids a compiler SIGSEGV on certain source  files.

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: GCC - updates
« Reply #2 on: March 26, 2022, 07:21:38 am »
More updates:
https://smedley.id.au/tmp/gcc-11.2.0-os2-20220326.zip

With help from Steven, the cause of the SIGSEGV has been found :) This seems pretty solid now!

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: GCC - updates
« Reply #3 on: April 22, 2022, 01:26:32 am »

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: GCC - updates
« Reply #4 on: May 07, 2022, 11:36:39 am »
[U:\DEV]gcc --version
gcc (GCC) 12.1.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Neil Waldhauer

  • Hero Member
  • *****
  • Posts: 1024
  • Karma: +24/-0
    • View Profile
    • Blonde Guy
Re: GCC - updates
« Reply #5 on: May 07, 2022, 03:11:51 pm »
Wasn't 12.1 released yesterday?
Expert consulting for ArcaOS, OS/2 and eComStation
http://www.blondeguy.com

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: GCC - updates
« Reply #6 on: May 07, 2022, 11:47:40 pm »
Wasn't 12.1 released yesterday?
I got the announcement email on the evening of May 6th (.au time  zone).

There were only a couple of small patches required, doing more testing now,  I'll post a link later today hopefully.

Interestingly, from the release notes:
Code: [Select]
This release deprecates support for the STABS debugging format and
introduces support for the CTF debugging format [1].

Dave Yeo

  • Hero Member
  • *****
  • Posts: 4786
  • Karma: +99/-1
    • View Profile
Re: GCC - updates
« Reply #7 on: May 08, 2022, 01:11:31 am »
How hard would it be to maintain stabs support in your fork? And whatever happened with aout being depreciated?

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: GCC - updates
« Reply #8 on: May 08, 2022, 01:38:15 am »
Hey Dave,

How hard would it be to maintain stabs support in your fork? And whatever happened with aout being depreciated?

No idea re: stabs support. Of course deprecated doesn't *necessarily* mean immediate removal in the next version. There is a bunch of stuff in Samba that is deprecated - but not yet removed. ie SMB1 support.

aout is simpler - gcc only produced assembly - it's the assembler that takes that assembly and turns it into the right object format. So long as long as we have a working version of gas,  we should be ok.

Link to the 12.1.0 build is https://smedley.id.au/tmp/gcc-12.1.0-os2-20220509.zip

Tested:
- building GCC 12.1.10
- building PHP 8.1.5
- building openssl 1.1.1o
- building apr-1.7.0

All seems fine so far, but YMMV

Cheers,

Paul

PS General reminder that if you want to  support future ports there's a Paypal link at https://os2ports.smedley.id.au or it can also be done via the AN store at https://www.arcanoae.com/shop/os2-ports-paul-smedley/

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: GCC - updates
« Reply #9 on: May 12, 2022, 11:53:45 am »
Not that it  seems there's a great deal  (any?) interest, but I'm getting some SIGSEGV building some code today with GCC 12.1.0, really not sure why yet.  Will investigate as time permits.

Dariusz Piatkowski

  • Hero Member
  • *****
  • Posts: 1317
  • Karma: +26/-0
    • View Profile
Re: GCC - updates
« Reply #10 on: June 10, 2022, 05:11:56 pm »
Paul, everyone...

Not that it  seems there's a great deal  (any?) interest...

This always interests me, however I will honestly say I simply do not know how best to "deploy" the non-RPM versions on my machine, which already has the official "gcc (GCC) 9.2.0 20190812 (OS/2 RPM build 9.2.0-5.oc00)" version installed.

I dread the thought of messing this working install up.

So is there a recommendation/standard way to deploy different GCC versions? Those of you who are doing so, what approach are you taking? I'm talking about not just getting the binaries out there, but are you not building GCC version specific environment setup CMDs?, etc???

I suppose a follow-up to the above really is: to what extent can the on-line multi-version-GCC deployment instructions be readily applied in our OS/2 environment?

Thanks for all the work!

Dave Yeo

  • Hero Member
  • *****
  • Posts: 4786
  • Karma: +99/-1
    • View Profile
Re: GCC - updates
« Reply #11 on: June 10, 2022, 05:38:26 pm »
Hi Dariusz,
What I do is unzip the GCC to @unixroot/usr so using GCC 9.4.0 as an example, I have w:\usr\local940. Then in @unixroot/usr/bin I have the attached gcc940env.cmd and run that in the command window where I want to use the new GCC. Line 74 is where you point to the local940 or whichever GCC,
Code: [Select]
call GCC322plus sPath, 'gcc940', 0, sLinker;Adjust the gcc940 line to whichever GCC you're using, I have multiple gcc*env.cmd files for different GCC versions.
Should really double check that this includes all the C++ stuff, KOMH originally did the cmd file quite a while back.

Paul Smedley

  • Hero Member
  • *****
  • Posts: 2092
  • Karma: +159/-0
    • View Profile
Re: GCC - updates
« Reply #12 on: August 20, 2022, 01:13:03 am »
[U:\DEV\gcc-os2]gcc --version
gcc (GCC) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

binaries soon if there's any interest.

Andy Willis

  • Sr. Member
  • ****
  • Posts: 292
  • Karma: +7/-0
    • View Profile
Re: GCC - updates
« Reply #13 on: August 20, 2022, 02:39:32 am »

I dread the thought of messing this working install up.

So is there a recommendation/standard way to deploy different GCC versions? Those of you who are doing so, what approach are you taking? I'm talking about not just getting the binaries out there, but are you not building GCC version specific environment setup CMDs?, etc???


I have a completely working rpm environment.  I also have many (most) of Paul's builds available.
I have several compilers installed so I have a compilers directory.
Under \compilers I have a gcc3.3.5 under which all the others reside:
03-13-22  18:04         <DIR>        0  bin
03-13-22  18:04         <DIR>        0  binutils
03-13-22  18:08         <DIR>        0  doc
03-13-22  18:05         <DIR>        0  i386-pc-os2-elf
03-13-22  18:06         <DIR>        0  i386-pc-os2-emx
03-13-22  18:06         <DIR>        0  include
08-12-17  23:36         <DIR>      124  info
03-13-22  18:07         <DIR>        0  lib
08-12-18   0:37         <DIR>      124  local510
08-12-18   0:51         <DIR>        0  local550
09-02-18  11:03         <DIR>      124  local620
08-12-18   0:40         <DIR>      124  local630
04-13-18  21:21         <DIR>      124  local710
04-13-18  21:18         <DIR>      124  local720
02-24-18  19:54         <DIR>      124  local730
08-09-18   0:59         <DIR>        0  local810
03-24-19  14:56         <DIR>      150  local820
05-05-19   9:56         <DIR>      150  local830
05-05-19   9:39         <DIR>      150  local910
03-13-22  17:47         <DIR>        0  local940
08-16-22  20:44         <DIR>        0  local1030
08-16-22  20:44         <DIR>        0  local1040
08-16-22  20:45         <DIR>        0  local1120
08-16-22  20:45         <DIR>        0  local1130
08-16-22  20:45         <DIR>        0  local1210
08-12-17  23:37         <DIR>      124  man
09-02-18  11:47         <DIR>        0  older
03-13-22  18:07         <DIR>        0  share
(older has 16 versions of 4.x.x)

I have a cmd script in each to set the environment:
Code: [Select]
SET GCCVER=10.4.0
SET GVER=1040
SET GCCDIR=e:\compilers\gcc440\local%GVER%
SET GCCDIR2=e:/compilers/gcc440/local%GVER%
SET GCCMAIN=e:
set GCCBASE=e:/usr
set USRBASE=e:/usr

SET PATH=%GCCDIR%\bin;%GCCDIR%\libexec\gcc\i386-pc-os2-emx\%GCCVER%;%PATH%
SET BEGINLIBPATH=%GCCDIR%\lib;%BEGINLIBPATH%

SET C_INCLUDE_PATH=%GCCDIR2%/lib/gcc/i386-pc-os2-emx/%GCCVER%/include;%GCCDIR2%/include;%USRBASE%/local/include;%GCCBASE%/include;
SET CPLUS_INCLUDE_PATH=%GCCDIR2%/include/c++/%GCCVER%;%GCCDIR2%/include/c++/%GCCVER%/i386-pc-os2-emx;%GCCDIR2%/lib/gcc/i386-pc-os2-emx/%GCCVER%/include;%USRBASE%/local/include;%GCCBASE%/include;
SET CPLUS_INCLUDE_PATH=%CPLUS_INCLUDE_PATH%;%GCCDIR2%/include;%GCCDIR2%/include/c++/backward;%GCCDIR2%/include/c++/%GCCVER%;%GCCDIR2%/include/c++/%GCCVER%/tr1;%GCCBASE%/include;

SET LIBRARY_PATH=%GCCDIR2%/lib/gcc/i386-pc-os2-emx/%GCCVER%;%GCCDIR2%/lib;%GCCDIR2%/lib/gcc/i386-pc-os2-emx/%GCCVER%;%USRBASE%/local/lib;%GCCBASE%/lib;

SET LIB=%LIBRARY_PATH%

This makes changing the version simple for each drop, right at the top.
It places the particular GCC headers and libraries first, then falls to the local lib and headers and finally to the rpm installed ones.

Andy Willis

  • Sr. Member
  • ****
  • Posts: 292
  • Karma: +7/-0
    • View Profile
Re: GCC - updates
« Reply #14 on: August 20, 2022, 02:41:25 am »
[U:\DEV\gcc-os2]gcc --version
gcc (GCC) 12.2.0
binaries soon if there's any interest.

I'm interested.