Operating System - OpenVMS
1823913 Members
3463 Online
109667 Solutions
New Discussion юеВ

Re: MMS case-sensitivity ODS-5

 
SOLVED
Go to solution
Alex Chupahin
Super Advisor

MMS case-sensitivity ODS-5

Hello!
May be this is an old question, but I still cant find solution anywere.
ODS-5, MMS from DECset OpenVMS 8.2
MMS cant deal with sources with lower case suffixes .c for example, only with upper case .C.

Is there a solution exclude renaming .c to .C for all files or using MMK?
28 REPLIES 28
Kris Clippeleyr
Honored Contributor
Solution

Re: MMS case-sensitivity ODS-5

Alex,
See also:
http://forums1.itrc.hp.com/service/forums/questionanswer.do?threadId=914555

AFAIK, nothing has changed.
I've brewn my own somewhat case-sensitive MMK. Have a look at:
http://www.quadratrix.be/opensource_material.html

Regards,
Kris (aka Qkcl)
I'm gonna hit the highway like a battering ram on a silver-black phantom bike...
Ian Miller.
Honored Contributor

Re: MMS case-sensitivity ODS-5

The latest version of MMS (3.8) claims to have better support for ODS5 but I have not tried it.
____________________
Purely Personal Opinion
Alex Chupahin
Super Advisor

Re: MMS case-sensitivity ODS-5

thanks for replay.

I'm opensource porter/developer, so I should make software source distributions for all users without newest mms/mmk. So I should find another solution.
Ian Miller.
Honored Contributor

Re: MMS case-sensitivity ODS-5

Alexey,
you can always include a DCL build procedure with your releases then no software other than the complier and VMS is required.

____________________
Purely Personal Opinion
Steven Schweda
Honored Contributor

Re: MMS case-sensitivity ODS-5

> [...] MMS from DECset OpenVMS 8.2

MMS /IDENTIFICATION ?

> MMS cant deal with sources with lower case
> suffixes .c for example, only with upper
> case .C.

What, exactly, are you trying to do? On one
of the TestDrive systems:

td183 $ mms /iden
%MMS-I-IDENT, MMS V3.8 ├В┬й Copyright 2007 Hewlett-Packard Development Company, L.P.

and I don't have any trouble with _files_
like "zip.c;1". I have not tried asking it
to deal with a _rule_ for, say, ".c.obj"
instead of ".C.OBJ", so I don't know what it
would do with that.

I did go through all my builders to change
all the product files (.obj, .exe, .hlb, ...)
to all-upper-case names (.OBJ, .EXE, .HLB,
...) to get things to work the same with the
new MMS as with the old ones (on ODS2 and
ODS5). The new MMS seemed to have trouble
dealing with dependencies which had different
cases. For example, it couldn't deal with
something like:

A.EXE : A.OBJ
[...]
a.obj : a.c
[...]

As I recall, it couldn't make the connection
between A.OBJ and a.obj, although the file
system certainly could.

I haven't tried it, but I assume that MMS is
still useless for projects where ".c" is C,
and ".C" is C++.


> you can always include a DCL build
> procedure with your releases then no
> software other than the complier and VMS is
> required.

Yes, but any serious development work pretty
much requires something more efficient than a
build-everything DCL script, so the result is
the need to maintain two separate builders,
and that adds to the maintenance workload.
Especially when it's a large project.

There's something to be said for an OS where
a program like "make" comes with the OS.
Dean McGorrill
Valued Contributor

Re: MMS case-sensitivity ODS-5

Steven vms itself is built using DCL. thats serious developement! Dean
Steven Schweda
Honored Contributor

Re: MMS case-sensitivity ODS-5

> vms itself is built using DCL.

How much DCL? If the DCL required to build
project X efficiently involves more effort
than project X itself, then I'd prefer
another method.

Rewriting "make" (or MMS, or MMK) in DCL
could be done (and I've seen crude attempts),
but it wouldn't be a wise use of resources, I
claim.
Jansen_8
Regular Advisor

Re: MMS case-sensitivity ODS-5

Hi,

I normally add some explicit rules to the descrip.mms file (see i.e. the changes I made for your Clamav port http://nchrem.tnw.tudelft.nl/openvms/software2.html )

This worked well for all version of MMS. However if you install the last version with the "enhanced" case sensitivity enabled I did run into serious problems (so I switched it off).
Jansen_8
Regular Advisor

Re: MMS case-sensitivity ODS-5

Hi,

I normally add some explicit rules to the descrip.mms file (see i.e. the changes I made for your Clamav port http://nchrem.tnw.tudelft.nl/openvms/software2.html )

This worked well for all version of MMS. However if you install the last version with the "enhanced" case sensitivity enabled I did run into serious problems (so I switched it off).
Steven Schweda
Honored Contributor

Re: MMS case-sensitivity ODS-5

> [...] if you install the last version [...]

> MMS /IDENTIFICATION ?

The "last version" is not a well-defined
item.

> [...] (see i.e. the changes I made [...]

Could you offer a hint here? (Like what the
changes were, and what the problems were?)

"i.e." -> "e.g."?
Alex Chupahin
Super Advisor

Re: MMS case-sensitivity ODS-5

Thanks for all,
I find a little solution - I've maden a script that generates DESCRIP file looks like
from a source directory.

a.obj : a.c
CC $(CFLAGS) $(MMS$SOURCE)

b.obj : b.c
CC $(CFLAGS) $(MMS$SOURCE)

prog.exe : $(OBJ)
LINK .....

in lower case. It works with ODS-2, ODS-5 MMS and MMK.
All sources names I'll provide in lower case.
But it still not tested under newest MMS.
Today I'll try to public newest clamav.
Alex Chupahin
Super Advisor

Re: MMS case-sensitivity ODS-5

Another interesting thing:
when DESCRIP.MMS contain rules with lower case file names .c
MMS and MMK works correctly even if source file in filesystem named as upper case.

Volker Halle
Honored Contributor

Re: MMS case-sensitivity ODS-5

Alex,

did you also experiment with SET PROC/CASE_LOOKUP={ BLIND | SENSITIVE } ?

Volker.
Alex Chupahin
Super Advisor

Re: MMS case-sensitivity ODS-5

Not yet.
It seems I should try. I have an old IBM
hard disk for experiments.
Steven Schweda
Honored Contributor

Re: MMS case-sensitivity ODS-5

> Another interesting thing:
> when DESCRIP.MMS contain rules with lower
> case file names .c
> MMS and MMK works correctly even if source
> file in filesystem named as upper case.

Another interesting thing:

MMS and MMK seem to work for me when
everything in the description file(s) is
upper case, too.

Note that CC /MMS_DEPENDENCIES on an ODS5
disk still puts out things with ".OBJ", not
".obj". For example:

deflate.OBJ : ALP$DKA100:[UTILITY.SOURCE.zip.zip30f]deflate.c

which can confuse things even more.

It sure would be nice if you could explain
exactly what the problem is that you're
trying to solve. Either I'm missing
something, or else you seem to be working
harder than you need to.

> It seems I should try. I have an old IBM
> hard disk for experiments.

LD can also be useful, if you don't have a
whole ODS5 disk. (Also, on the HP TestDrive
systems, as they say, "You also have a
directory on an ODS-5 device. USER5:[xxx]".)
Hoff
Honored Contributor

Re: MMS case-sensitivity ODS-5

[[[ > vms itself is built using DCL.

How much DCL? If the DCL required to build
project X efficiently involves more effort
than project X itself, then I'd prefer
another method. ]]]

A whole lot of DCL.

OpenVMS does not use a dependency-based builder such as MMS; the build is a brute-force full-source build. This because of the speed and reliability of same when you're dealing with the scale of software (well above 27 million lines) and with the available underlying hardware (fast), and given the inter-dependency forest.

I'm not a big fan of dependency-based builds, that's something intended to optimize lower I/O bandwidth and lower processor performance; compilers have classically been resource-expensive. Now, those limits can be less of a restriction. A brute-force full-build has its advantages.

And in keeping with the thread, C itself has some restrictions around its suffixes. IIRC, uppercase .H only. And IIRC, this was reportedly also a "permanent restriction."
Alex Chupahin
Super Advisor

Re: MMS case-sensitivity ODS-5

Thanks.

The problem I'm solving is:

I distributed files in .TAR-GZ.
Many time I have an quite old TAR utility on my very old Alpha with 7.3-1.
All untared archives was in upper case and it works fine with MMS and MMK.
But.
Now I have 8.3 on new hardware and recent TAR and I just see,
that unarchived file names are in lower case that MMS cant handle.
Of course, I know about key /ODS2, but I'm working for OpenVMS users and should find a solution how to touch MMS to handle lower and upper cases both.
Steven Schweda
Honored Contributor

Re: MMS case-sensitivity ODS-5

> [...] C itself has some restrictions around
> its suffixes. IIRC, uppercase .H only. [...]

Huh? Care to demonstrate?

UNIX C compilers tend to distinguish (in
their usual case-sensitive way) among files
with different suffixes (.c, .o, .s, ...),
but I've never seen a VMS C compiler which
cared about anything like that, and I don't
remember any UNIX C compiler caring what a
"#include" directive said. Something
related to the "#include module-name" form,
perhaps?
Steven Schweda
Honored Contributor

Re: MMS case-sensitivity ODS-5

> [...] file names are in lower case that MMS
> cant handle.

Please explain "that MMS can[']t handle".

ALP $ dire /colu = 1 zip

Directory ALP$DKA100:[UTILITY.SOURCE.zip.zip30f]

zip.c;1
zip.h;1
ZIP.HLP;1
zip.txt;1

Total of 4 files.
ALP $ mms /des = [.vms] /mac = (large=1, iz_bzip2=iz_bzip2)


BZIP2 dir: utility_root:[SOURCE.BZIP2.BZIP2-1_0_4b_VMS.ALPHAL]

Destination: [.ALPHAL]

if (f$search( "ALPHAL.DIR;1") .eqs. "") then create /directory [.ALPHAL]
CC /decc /prefix = (all) /INCLUDE = ([], [.VMS]) /object = [.ALPHAL]ZIP.OBJ
/define = (VMS , BZIP2_SUPPORT , LARGE_FILE_SUPPORT ) []ZIP.C
CC /decc /prefix = (all) /INCLUDE = ([], [.VMS]) /object = [.ALPHAL]CRC32.OB
J /define = (VMS , BZIP2_SUPPORT , LARGE_FILE_SUPPORT ) []CRC32.C
If "''F$Search("[.ALPHAL]ZIP.OLB")'" .EQS. "" Then LIBRARY/Create [.ALPHAL]ZIP.O
LB
LIBRARY/REPLACE [.ALPHAL]ZIP.OLB [.ALPHAL]CRC32.OBJ
Interrupt

ALP $ set default d0:
ALP $ dire /colu = 1 zip

Directory ALP$DKA0:[UTILITY.SOURCE.ZIP.ZIP30F]

ZIP.C;1
ZIP.H;1
ZIP.HLP;1
ZIP.TXT;1

Total of 4 files.
ALP $ mms /des = [.vms] /mac = (large=1, iz_bzip2=iz_bzip2)


BZIP2 dir: utility_root:[SOURCE.BZIP2.BZIP2-1_0_4b_VMS.ALPHAL]

Destination: [.ALPHAL]

if (f$search( "ALPHAL.DIR;1") .eqs. "") then create /directory [.ALPHAL]
CC /decc /prefix = (all) /INCLUDE = ([], [.VMS]) /object = [.ALPHAL]ZIP.OBJ
/define = (VMS , BZIP2_SUPPORT , LARGE_FILE_SUPPORT ) []ZIP.C
CC /decc /prefix = (all) /INCLUDE = ([], [.VMS]) /object = [.ALPHAL]CRC32.OB
J /define = (VMS , BZIP2_SUPPORT , LARGE_FILE_SUPPORT ) []CRC32.C
If "''F$Search("[.ALPHAL]ZIP.OLB")'" .EQS. "" Then LIBRARY/Create [.ALPHAL]ZIP.O
LB
Interrupt

ALP $ mms /id
%MMS-I-IDENT, MMS V3.5 ├В┬й 2003 Hewlett-Packard Development Company, L.P.


Trust me. Other than the case of the names,
all these files are the same, and the same
kit works the same way on a TestDrive system
with MMS V3.8, on an ODS2 disk and on an ODS5
disk. (Otherwise, I'd be in for many (more)
complaints when this stuff gets released.)

As I said before, "I don't have any trouble
with _files_ like "zip.c;1", and you _still_
haven't shown what you're trying to do, and
how it fails. "It doesn't work" is not a
useful problem description. _Please_ make a
small example DESCRIP.MMS (or descrip.mms)
which fails, and then show us that file, and
show us how it fails.
Alex Chupahin
Super Advisor

Re: MMS case-sensitivity ODS-5

Thanks, Ok,
I'll post here DESCRIP.MMS about 4-OCT-2007
I have no internet access next day.
Hoff
Honored Contributor

Re: MMS case-sensitivity ODS-5

[[[Huh? Care to demonstrate?]]]

Since this thread was initiated with a discussion of lower- and uppercase extension / type / file suffix values and a discussion of the C compiler, the following "permanent restriction" detail might well be germane:

http://h71000.www7.hp.com/DOC/732FINAL/6668/6668pro_009.html

"5.2 C Programs: Compiling with case=sensitive Settings

Permanent Restriction

If you are compiling C programs with the setting case=sensitive , any #include files in your C program specified with the .h file type (lowercase h) will not be seen and executed. In addition, if a system #include file specifies another #include file with a .h file type, the second #include file will not be seen and an error will be generated.

To avoid this behavior, compile with case set to blind. If it is necessary to use case=sensitive , specify any #include files in your C programs either with no file type (for example, #include ) or with an uppercase H file type (for example, #include ).

Note that this does not correct the scenario where system #include files, such as stdlib.h, in turn specify #include files with a .h file type and cause an error to be generated."

Steven Schweda
Honored Contributor

Re: MMS case-sensitivity ODS-5

> 5.2 C Programs: Compiling with
> case=sensitive Settings
> [...]

Oh, _that_ restriction. I seem to recall
reading that when it was fresh, deciding that
case-sensitivity was too dangerous for
general use, and then remembering only the
conclusion.
Alex Chupahin
Super Advisor

Re: MMS case-sensitivity ODS-5

>Please_ make a
>small example DESCRIP.MMS (or descrip.mms)
>which fails, and then show us that file, and
>show us how it fails.

for example:

CFLAGS=/OPT

OBJ = a.obj, b.obj

all : a.exe

a.exe : $(OBJ)
LINK $(OBJ)


MMS fails:
There are no known sources for the current target A.C

$dir
a.c
b.c
Alex Chupahin
Super Advisor

Re: MMS case-sensitivity ODS-5

MMK works in that case.

but if I do:

CFLAGS=/OPT

OBJ = a.obj, b.obj

all : a.exe

a.obj : a.c
CC $(CFLAGS) $(MMS$SOURCE)

b.obj : b.c
CC $(CFLAGS) $(MMS$SOURCE)

a.exe : $(OBJ)
LINK $(OBJ)


works with MMS, MMK and lower/upper case file names both.
i.e
A.C
B.C

and

a.c
b.c