What is new in Release 1.80 of Systems/C
scanf()
family of functions now supports more C99-specified conversions, including the
hh,
j,
ll,
t and
z modifiers. Also, many of
the older compatibility conversions were removed.
%E and
%F now follow ANSI rules.
popen()/pclose()
functions for POSIX environments.
-uu option.
-uu operates exactly as
-u, except
that the return code will be unaffected by unresolved references.
XSD or
ESD-style output
files. For some situations (but not all) the binder will include those
sequence numbers in error messages, which can help in diagnosing binder (or
PLINK) issues.
-bvse option, which causes it to do full
binding of the modules and produce a VSE "unloaded" PHASE file.
-dint
option that treats 'D'-type
fields as 8-byte integers instead of 8-byte floating point values.
-fpack
option to specify per-compilation structure member alignment.
#include
files from PDS members under OpenEdition.
-frsa=NNN
to provide the user a mechanism for defining the per-function
register-save-area. Support for 128-bit (long
double) floating point data type.
#pragma linkage
values can now also apply to function typedefs, to support building function
pointers that have different linkage conventions.
-march=esa390
option; causes the compiler to use halfword immediate instructions, use string
instructions and to assume 16 floating-pt registers. Enabled by default with
-flinux is
specified.
What is new in Release 1.76 of Systems/C
non-constant member-designator in offsetof
-showctl
option that causes PLINK to display any control cards encountered during
linking.
O_CREAT and
O_EXCL flags
in open(2) now supported for dynamically allocating MVS file-system files.
Also - several new attribute values pertinent to specifying sizes and file
attributes when creating files.
What is new in Release 1.75 of Systems/C
-march=zarch
is specified, the compiler will predefine the macro
_LP64 to 1; otherwise, it
defines the _ILP32
macro to 1.
-fcodepage500
option on EBCDIC platforms to support source in IBM-500 codepage. New
#pragma filetag
supported on EBCDIC platforms to indicate the source code code-page.
-fc370
is not specified, the compiler recognizes #pragma
pack(pop) as a equivalent to
#pragma pack(reset).
__FUNCTION__ predefined
identifier. This is replaced with a string constant that is the name of the
current function.
LNAMEADDR=
parameter was added to DCCPRLG
which provides the label for this string. This allows the string to be as long
as necessary, and contain any required bytes, and also be properly demangled
in the C++ case. This significantly enhances the
__traceback function.
-fc370=z1r2
option, to indicate compatibility with the IBM V1R2 z/OS compiler.
getprogname()
and setprogname()
functions were added.
__jobname(),
__stepname(),
__procname(),
__get_cpuid(),
__isPosixOn()
functions.
_exit(),
getpid(),
getppid(),
pipe(),
getcwd(),
getlogin(),
uname(),
fork(),
exec*(),
execve(),
wait(),
waitpid(),
wait3(),
getgid(),
setgid(),
getegid(),
setegid(),
getuid(),
setuid(),
geteuid(),
seteuid(),
setreuid(),
setregid(),
getpwent(),
setpassent(),
setpwent(),
endpwent(),
getpwnam(),
getpwuid(),
getgrent(),
setgroupent(),
setgrent(),
endgrent(),
getgrnam(),
getgruid(),
getpid(),
getppidd(),
getcwd(),
getwd(),
getgroups(),
setgroups(),
getpriority(),
setpriority(),
nice(),
getpgrp(),
setpgrp(),
getpgid(),
setpgid(),
getsid(),
setsid(),
getrusage(),
kill(),
times(),
__passwd(),
realpath(),
mmap(),
mprotect(),
msync(),
munmap(),
ftok(),
shmat(),
shmdt(),
shmget(),
shmctl(),
msgget(),
msgctl(),
msgrcv(),
msgsnd(),
system(),
semctl(),
semop(),
semget(),
ptsname(),
grantpt(),
unlockpt(),
tcsendbreak(),
tcdrain(),
tcflow(),
tcflush(),
tcgetattr(),
tcsetattr(),
tcgetpgrp(),
tcsetpgrp(),
cfgetispeed(),
cfsetispeed(),
cfgetospeed(),
cfsetospeed(),
cfsetspeed(),
and cfmakeraw().
open(),
read(),
write(),
close(),
lseek(),
unlink(),
rename(),
isatty(),
fcntl(),
rmdir(),
mkdir(),
access(),
fsync(),
umask(),
fstat(),
stat(),
lstat(),
link(),
symlink(),
readlink(),
mknod(),
mkfifo(),
opendir(),
readdir(),
rewinddir(),
closedir(),
chown(),
fchown(),
lchown(),
chmod(),
fchmod(),
chdir(),
fchdir(),
chroot(),
truncate(),
ftruncate(),
pathconf(),
fpathconf() utime(), utimes() and futimes().
NOTEs.
sys_signame[],
sys_siglist[] and
sys_nsig;
DOMAIN statement as well
as DOMAINORIGIN
in the TCPIP.DATA
file.
sysconf()
function to provide partial POSIX compatibility in non-POSIX environments.
getipnodebyname(),
getipnodebyaddr(),
and freehostent().
strtoll(),
strtoull() are provided (the previous
non-standard strtoq()
and strtouq()
are still provided for backwards compatibility.)
strcasestr(),
wcscat(),
wcslcpy(),
wcsrchr(),
wmemcpy(),
strlcat(),
wcschr(),
wcslen(),
wcsspn(),
wmemmove(),
strlcpy(),
wcscmp(),
wcsncat(),
wcsstr(),
wmemset(),
strmode(),
wcscpy(),
wcsncmp(),
wcswidth(),
strnstr(),
wcscspn(),
wcsncpy(),
wmemchr(),
strsignal(),
wcslcat(),
wcspbrk() and
wmemcmp().
digittoint(),
ishexnumber(),
isideogram(),
isnumber(),
isphonogram(),
isrune() and
isspecial().
ddnfind()/ddnnext()
functions which determine the DSN associated with a
DD.
-DD=name=template
which specifies a search pattern template to use processing an
INCLUDE card with a DDNAME(MEM)-style
name.
-elc/-xelc
options in D2S to enable lower-casing of EQU/SECTION names.
-bfstruct/-xbfstruct
option in D2S to control the generation of bitfield-populated
structures for odd-sized data (e.g. XL3
will be translated to struct { unsigned BF :
24; }.
What is new in Release 1.70 of Systems/C
rename()
function has been added which can rename DSN-style files. Also - by default, PLINK will process all defined "dummy" sections creating a PRV table. This allows reentrant programs to be generated for systems the use older versions of the IBM linker that don't support a Psuedo Register Vector larger than 4K (e.g. VSE and older CMS.)
PLINK will also eliminate duplicately defined weak functions in Systems/C programs (mostly used for C++ templates.) PLINK will remove the bytes from the generated TXT sections, signifcantly reducing the resulting load-module size.
Furthermore, PLINK (and DAR/DRANLIB) can now handle IBM C objects. When an IBM compatible object is discovered, PLINK mimics the IBM Pre-Linker. Thus, all IBM pre-linking functions can be accomplished on a cross-platform host.
#pragma
weak functions in Systems/C mode. (The new
version of PLINK will automatically remove duplicate weak definitions
and eliminate the duplicate code from the resulting load module.) This is also
employed for proper handling of C++ automatic template instantiation.
-finstrument_functions
option. For Linux (-flinux),
this decorates function entry/exit points compatibly with the normal Linux
utilities. In Systems/C mode, this causes macros to be generated a function
entry/exit points. -fstructmap/-fno_structmap
option to enable/disable the "structure map" portion of the listing.
-fasmcomm
option in the C compiler, which describes how the original C lines should
appear in the generated assembler output. -fasmlnno