GNV and make for x86-64
-
Topic author - Contributor
- Posts: 13
- Joined: Thu Oct 22, 2020 11:24 am
- Reputation: 0
- Status: Offline
GNV and make for x86-64
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
If it's not available yet would building it myself be an option? Where would I go for the source?
Thanks,
Mark
Re: GNV and make for x86-64
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/
-
- 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
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 - Contributor
- Posts: 13
- Joined: Thu Oct 22, 2020 11:24 am
- Reputation: 0
- Status: Offline
Re: GNV and make for x86-64
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.
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 - Contributor
- Posts: 13
- Joined: Thu Oct 22, 2020 11:24 am
- Reputation: 0
- Status: Offline
Re: GNV and make for x86-64
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.
Re: GNV and make for x86-64
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
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.
Re: GNV and make for x86-64
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.
Re: GNV and make for x86-64
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.
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.
Re: GNV and make for x86-64
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.
Re: GNV and make for x86-64
[.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.sms wrote: ↑Fri Jan 26, 2024 2:32 pmCode: 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. ...