GNV and make for x86-64

Talk about commercial or opensource products that already exist for OpenVMS or may be available in the future.
Post Reply

Topic author
mjimji
Contributor
Posts: 13
Joined: Thu Oct 22, 2020 11:24 am
Reputation: 0
Status: Offline

GNV and make for x86-64

Post by mjimji » Tue Feb 21, 2023 2:04 pm

Can anyone tell me if there is a make utility for x86 yet? I use GNV make on Itanium and Alpha and would like to be able to use the same make files.

If it's not available yet would building it myself be an option? Where would I go for the source?

Thanks,

Mark


sms
Master
Posts: 317
Joined: Fri Aug 21, 2020 5:18 pm
Reputation: 0
Status: Offline

Re: GNV and make for x86-64

Post by sms » Tue Feb 21, 2023 5:50 pm

Code: Select all

> If it's not available yet would building it myself be an option?
> Where would I go for the source?

   I haven't touched GNV in a long time, so I know nothing, but I'd
expect any GNU adaptation to be _required_ to make the source code
available.

   My quick Web search led to:

      https://vmssoftware.com/products/gnv/

(Presumably, the broken link there,
http://www3.sympatico.ca/n.rieck/docs/openvms_notes_gnv.html , should
now point to http://neilrieck.net/docs/openvms_notes_gnv.html .)

   Also: https://sourceforge.net/projects/gnv/
         https://sourceforge.net/p/gnv/wiki/Home/


tim.stegner
VSI Expert
Valued Contributor
Posts: 55
Joined: Wed Jul 21, 2021 9:14 am
Reputation: 0
Status: Offline

Re: GNV and make for x86-64

Post by tim.stegner » Thu Feb 23, 2023 8:40 am

You should be able to get the make sources for (GNV's version 3.78.1 or) version 4.1 from Savannah and the latter version is known to compile on x86.


Topic author
mjimji
Contributor
Posts: 13
Joined: Thu Oct 22, 2020 11:24 am
Reputation: 0
Status: Offline

Re: GNV and make for x86-64

Post by mjimji » Fri Feb 24, 2023 9:41 am

Thanks sms and tim.stegner.

I tried compiling version 4.4 and found quite a few issues, but eventually managed to produce an executable. Due to time constraints though, I haven't been able to test it :(

When I can get back to it I will probably use version 4.1 instead.


Topic author
mjimji
Contributor
Posts: 13
Joined: Thu Oct 22, 2020 11:24 am
Reputation: 0
Status: Offline

Re: GNV and make for x86-64

Post by mjimji » Thu Mar 09, 2023 6:18 am

I built and am now using version 4.1, downloaded from Savannah. I think the only change I made was to define HAVE_SA_RESTART on the cc command in makefile.com.
Last edited by mjimji on Thu Mar 09, 2023 6:19 am, edited 1 time in total.


cdan
Newbie
Posts: 4
Joined: Thu Jan 26, 2023 10:51 am
Reputation: 0
Status: Offline

Re: GNV and make for x86-64

Post by cdan » Tue Jan 23, 2024 9:47 am

I managed to compile GAWK v 5.2.2 from here https://ftp.gnu.org/gnu/gawk/ on OpenVMS V9.2-1
I had to unpack the tar.gz on Windows, rename the main folder to something more VMS compatible and re-zip it.
I used @[.VMS]VMSBUILD.COM and I got no errors, just some warnings like:
identification="V5.2.2"

%ILINK-W-COMPWARN, compilation warnings
module: vms_fwrite
file: SYS$SYSDEVICE:[RELEASE.gawk522]vms_fwrite.OBJ;1
%ILINK-W-NUDFSYMS, 3 undefined symbols:
%ILINK-I-UDFSYM, fork
%ILINK-I-UDFSYM, tcgetattr
%ILINK-I-UDFSYM, tcsetattr
%ILINK-W-USEUNDEF, undefined symbol tcgetattr referenced
section: $CODE$
offset: %X000000000000606D
module: io
file: SYS$SYSDEVICE:[RELEASE.gawk522]io.OBJ;1



%CC-W-MACROREDEF, The redefinition of the macro "INT32_MAX" conflicts with a current definition because the replacement lists diffe
r. The redefinition is now in effect.
at line number 49 in file SYS$SYSDEVICE:[RELEASE.gawk410]config.h;1



Versions 5.3.0 and 4.1.0 failed to compile with several errors like:
%CC-E-CLOSEPAREN, Missing ")".
at line number 3518 in file SYS$SYSDEVICE:[RELEASE.gawk-master]awkgram.y;1
%CC-E-UNDEFINEDTYPE, The compiler was expecting a ";", but one was not found. This condition could have occured because "int32_t"
%CC-E-UNDECLARED, In this statement, "INT32_MIN" is not declared.
at line number 3518 in file SYS$SYSDEVICE:[RELEASE.gawk-master]awkgram.y;1

%CC-E-NOSUBTRACT, In this statement, "x" cannot be subtracted from "(unsigned int ...)&x".
at line number 50 in file SYS$SYSDEVICE:[RELEASE.gawk410]floatmagic.h;1
Last edited by cdan on Fri Jan 26, 2024 8:16 am, edited 2 times in total.


sms
Master
Posts: 317
Joined: Fri Aug 21, 2020 5:18 pm
Reputation: 0
Status: Offline

Re: GNV and make for x86-64

Post by sms » Tue Jan 23, 2024 2:06 pm

Code: Select all

> I managed to compile v 5.2.2 from here https://ftp.gnu.org/gnu/gawk/
> on OpenVMS V9.2-1

   And that ("gawk") is related to the original question ("make") how,
exactly?  At least one of us seems to be confused.

> I had to unpack the tar.gz on Windows, rename the main folder to
> something more VMS compatible and re-zip it.

   "had to"?  I'd expect the following to remove the requirement to do
any of that work on a non-VMS system:

      http://antinode.info/dec/sw/gzip.html
      http://antinode.info/dec/sw/vmstar.html

   If not, then complaints are always welcome.

> [...] I just got some warnings, [...]

   Not much meat on that bone.


cdan
Newbie
Posts: 4
Joined: Thu Jan 26, 2023 10:51 am
Reputation: 0
Status: Offline

Re: GNV and make for x86-64

Post by cdan » Fri Jan 26, 2024 8:36 am

Thanx @sms for the links, I tested both gzip and vmstar and I was surprised to see they managed well the multiple dots in the path, translating them to underscores.
The only relation I know of GAWK to MAKE is that both are part of GNV and in that sense you are perfectly right, my post does not answer the topic, but I thought it might help some people searching for GNV.
Also added some of the errors and warnings in my initial post, in case it can bring some clues about why some versions of gawk did not work on X86. I believe it might be related to the initial VMSBUILD.COM procedure not being maintained anymore.


sms
Master
Posts: 317
Joined: Fri Aug 21, 2020 5:18 pm
Reputation: 0
Status: Offline

Re: GNV and make for x86-64

Post by sms » Fri Jan 26, 2024 2:32 pm

Code: Select all

> [...] just some warnings like:
> [...]
> %ILINK-I-UDFSYM, fork
> %ILINK-I-UDFSYM, tcgetattr
> %ILINK-I-UDFSYM, tcsetattr
> [...]

   Those warnings are harmless, until the program calls one of those
missing functions, and then dies because it's missing.

   Knowing nothing, I might look into the GNV code to see if anyone has
provided tcgetattr and tcgetattr.  If not, then I'd guess that on VMS
that code needs to be replaced by more VMS-specific stuff, typically
involving sys$getdvi and/or sys$qiow with IO$_SENSEMODE or IO$_SETMODE.

   Methods for replacing "fork" depend on why/how it's being used.

   Looking at VMS-specific parts of older gawk versions might provide
some clues.

> [...] why some versions of gawk did not work on X86. [...]

   If a program gets built and works on VMS on Alpha/IA64/VAX, but not
on x86_64, then I'd look for problems in the builders (VMSBUILD.COM?). 
Many older DCL scripts and MMS description files need changes to work on
a new hardware architecture.


hb
Valued Contributor
Posts: 63
Joined: Mon May 01, 2023 12:11 pm
Reputation: 0
Status: Offline

Re: GNV and make for x86-64

Post by hb » Fri Jan 26, 2024 4:25 pm

sms wrote:
Fri Jan 26, 2024 2:32 pm

Code: Select all

> [...] just some warnings like:
> [...]
> %ILINK-I-UDFSYM, fork
> %ILINK-I-UDFSYM, tcgetattr
> %ILINK-I-UDFSYM, tcsetattr
> [...]

   Those warnings are harmless, until the program calls one of those
missing functions, and then dies because it's missing.
...
[.VMS]VMSBUILD.COM creates a CONFIG.H based on the available include files (or maybe there is some AI involved). On x86 there is termios.h. but not everything is implemented. So just #undef HAVE_TERMIOS_H in [gawk-5_2_2]CONFIG.H and re-run VMSBUILD - it is smart enough not to re-create the config file. You will see less compiler messages and very likely getting a working gawk.

Post Reply