List Info

Thread: GMP: IBM mainframe build results




GMP: IBM mainframe build results
country flaguser name
Belgium
2007-07-13 03:49:06
[cc'ing the libtool list because of the issues marked
[LIBTOOL] below;
these may or may not already be resolved in more recent
libtools - the
version included with gmp is 1.5.6 according to ltmain.sh
(1.220.2.94)]

I just finished building gmp 4.2.1 under OpenMVS
("370-ibm-openedition",
the Unixy subsystem of z/OS). All in all the build was a
fairly painless
experience (especially compared to trying to compile some
GNU tools).
However, the testsuite is providing me with headaches...

A few platform notes:
- the compiler considers missing headers a warning, which
breaks many
  configure tests. So the equivalent of -Werror needs to be
used,
  which is setting the envvar _CC/C89/CXX_ACCEPTABLE_RC to 0
(depending
  on whether the K&R C/ANSI C/C++ compiler is used)
- [LIBTOOL?] there is no separate linker executable, and
  configure/libtool don't handle this case ('no acceptable
LD found in
  path'), so configure needs to be told LD is $CC (or $CXX
if the C++
  wrappers are needed). Not a big deal, but it would be nice
if this
  test would fall back on $CC if no separate linker is
found.
- not all C library functions/declarations are visible by
default;
  configure should ideally be told that CPPFLAGS contains
  -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED
- [LIBTOOL] by default, the compilers require that files
come last on
  the command line, and many versions of libtool (including
the one
  included with GMP) break this rule when configure has
determined -c
  and -o can both be used (it puts the -o last). To work
around this,
  the envvar _CC/C89/CXX_CCMODE needs to be set to 1.
- I didn't build the C++ wrappers, but because they use the
.cc
  extension, the _CXX_CXXSUFFIX envvar would need to be set
to "cc" to
  succeed (by default, the compiler only accepts foo.C as a
C++ source).
- the system compiler does not use IEEE floats/doubles by
default (the
  default is the "base 16 zSeries hexadecimal
format"), so configure
  complains about it (but other than performance, this
should not have
  any impact). Might be useful to mention in the platform
notes in the
  manual that the IEEE format can be selected by adding
  "-Wc,'float(ieee)'" to CFLAGS (although it would
also have to be
  used for any application using libgmp). Configuring +
building gmp
  takes the better part of the day, so I haven't redone the
build with
  IEEE floats enabled (yet).

Build issues encountered:
- gmp.h doesn't know about OpenMVS' include guard for stdio
(__stdio),
  so configure warns that FILE prototypes won't be available
- easily
  fixed by adding a test for __stdio to gmp-h.in.
- gmp.h doesn't know whether "extern inline" works
as needed (and
  neither do I, so I didn't modify gmp-h.in for this). The
warning given
  by configure ('gmp.h doesnt recognise compiler
"__inline"') was rather
  confusing however (leaving aside the "doesnt"
typo which is repeated a
  few times in acinclude.m4). Perhaps something like
"gmp.h doesn't know
  whether the compiler supports external inlining; inlining
disabled"
  more closely matches the actual situation?
- OpenMVS has no obstacks, so the obstack-related
functionality in
  printf is disabled, which is fine. However, so much of the
ob*.c
  sources is #ifdef'ed out that the compilation unit ends up
being empty
  (only config.h is included, and that has only preprocessor
stuff).
  This causes a warning, which due to the required
-Werror-like
  behaviour (see above) stops the build. Simply moving the
stdarg/vararg
  #includes out of the obstack-available test makes things
compile
  smoothly.
- [LIBTOOL] MAJOR: The system 'ar' does not store paths,
only basenames,
  and during the (piecewise) link of libgmp.la, multiple
files with the
  same basename are given to ar, resulting in messages
like:
    ar: FSUM9942 "mpn/mul.o" ignored, same
basename as "mpq/mul.o".
  I made a little script that copied all relevant objects to
a single
  directory (replacing / by _ so I got files like
mpf_fits_sint.o) in
  order to easily (re)create a complete libgmp.a.
  I would consider this a libtool bug; adding the same file
(or files
  with the same basename) to a library multiple times works
fine as long
  as it is not in a single invocation of ar. So perhaps the
libtool
  configury should detect this issue and avoid including
multiple files
  with the same basename during piecewise linking.
- [LIBTOOL] During installation, the "libraries have
been installed in"
  message is shown, but the shell's print builtin (used in
$echo) shows
  an error for the line of dashes:
    print: ./libtool 6200: FSUM6241 Unknown option
"--"
    print: ./libtool 6200: Usage: print [-nprRsu[n]] [arg
...]
  Preceding the string with -- makes this go away ($echo --
"--...").

Test results:
- top-level:  9/9  tests passed
- mpn:        9/10 tests passed
- mpz:       35/56 tests passed
- mpq:        3/11 tests passed
- mpf:       20/26 tests passed
- rand:       7/7  tests passed
- misc:       0/3  tests passed
  total:     83/122 => 68% passed (not exactly great)

Several of the tests seem to run into the limits of the
default
floating-point system on zSeries. Its exponent is only in
the -64..63
range (according to float.h anyway), and it seems to be
limited to 248
bits (8 31-bit words).
This causes compilation errors (e.g. mpz/t-cmp_d) due to
out-of-range
floating-point literals, as well as runtime exceptions (e.g.
most of the
t-get_d tests).
I manually adjusted mpn/t-get_d for these limits, but the
test still
failed:
  mpn_get_d wrong on random data
     sign     -1
     n        =0xC6843F29A331B7
     nsize    2
     exp      -45
     want     =[C3 63 42 1F 94 D1 98 D8] -1588.132710283984
     got      =[C3 63 42 1F 94 D1 98 DB] -1588.132710283984
  CEE5207E The signal SIGABRT was received.
I also added
  #if defined (__MVS__) &&
!defined(_FP_MODE_VARIABLE)
  #define LOW_BOUND 1e-64
  #define HIGH_BOUND 8e63
  #endif
to mpf/t-get_d.c (inspired by the VAX settings), which fixed
similar
compilation issues there, and also lets the test pass
(judging by
float.h, _FP_MODE_VARIABLE is defined when IEEE floats are
enabled).

The other major source of errors is that mp_dv_tab.c assumes
ASCII while
this is an EBCDIC host; and the unfortunate decision to use
only 224
positions for base < 36 (instead of 256, or separate
tables) means it
is not possible to have a 100% working table without
adjusting many
places in the code (because '0' through '9' are 0xF0 through
0xF9, which
falls in the area where the 2 base ranges overlap). Attached
is a
version of the file that handles both ASCII and EBCDIC;
ideally the
table should be increased to the full 2x256 size, and the
offset used
for base >36 changed to 256. It relies on the ability of
the
preprocessor to compare a character literal against an
integer; I'm not
sure how portable that is - if it cannot be done this way
portably, the
best solution would be to have a
"gmp_get_digit_value_table(int base)"
method that returns the correct table (determining ASCII vs
EBCDIC at
runtime).

With these changes (limits in mpf/t-get_d.c, and
EBCDIC-friendly
mp_dv_tab.c), the test results change to

- top-level:  9/9  tests passed
- mpn:        9/10 tests passed
- mpz:       53/56 tests passed
- mpq:        9/11 tests passed
- mpf:       26/26 tests passed
- rand:       7/7  tests passed
- misc:       0/3  tests passed
  total:    113/122 => 93% passed (much, much better)

The output of the remaining errors is attached.


_______________________________________________
gmp-bugs mailing list
gmp-bugsswox.com
http://swox
.com/mailman/listinfo/gmp-bugs

  
  
Re: GMP: IBM mainframe build results
country flaguser name
Germany
2007-07-13 06:21:49
Hello Tim,

* Tim Van Holder wrote on Fri, Jul 13, 2007 at 10:49:06AM
CEST:
> [cc'ing the libtool list because of the issues marked
[LIBTOOL] below;

Thanks.

> these may or may not already be resolved in more recent
libtools - the
> version included with gmp is 1.5.6 according to
ltmain.sh (1.220.2.94)]
> 
> I just finished building gmp 4.2.1 under OpenMVS
("370-ibm-openedition",
> the Unixy subsystem of z/OS). [...]

> - [LIBTOOL?] there is no separate linker executable,
and
>   configure/libtool don't handle this case ('no
acceptable LD found in
>   path'), so configure needs to be told LD is $CC (or
$CXX if the C++
>   wrappers are needed). Not a big deal, but it would be
nice if this
>   test would fall back on $CC if no separate linker is
found.

The failure is useful in that it exposes if libtool is
unable to find
the right linker on other systems.  The change could make
the failure
silent, leading to weird followup issues later on.

> - [LIBTOOL] by default, the compilers require that
files come last on
>   the command line, and many versions of libtool
(including the one
>   included with GMP) break this rule when configure has
determined -c
>   and -o can both be used (it puts the -o last). To
work around this,
>   the envvar _CC/C89/CXX_CCMODE needs to be set to 1.

This we can probably fix.  Please post
  ./libtool --config

also the depmode configure has settled on.  Thanks.

> - I didn't build the C++ wrappers, but because they use
the .cc
>   extension, the _CXX_CXXSUFFIX envvar would need to be
set to "cc" to
>   succeed (by default, the compiler only accepts foo.C
as a C++ source).

Yuck.  MSVC needs .cpp, so to avoid having to set this,
Autoconf would
need a further test for $ac_ext in the C++ case.  Also, it's
not
feasible to expect that user code change their file names on
the fly, so
I assume that since your compiler can be taught (by
_CXX_CXXSUFFIX) it
is better to stick with '.cpp'.  :-/

> - OpenMVS has no obstacks, so the obstack-related
functionality in
>   printf is disabled, which is fine. However, so much
of the ob*.c
>   sources is #ifdef'ed out that the compilation unit
ends up being empty
>   (only config.h is included, and that has only
preprocessor stuff).
>   This causes a warning, which due to the required
-Werror-like
>   behaviour (see above) stops the build. Simply moving
the stdarg/vararg
>   #includes out of the obstack-available test makes
things compile
>   smoothly.

You could add a dummy symbol, or exclude the file from
compilation when
it's not needed (AC_LIBOBJ comes handy, or Automake
conditionals).

> - [LIBTOOL] MAJOR: The system 'ar' does not store
paths, only basenames,
>   and during the (piecewise) link of libgmp.la,
multiple files with the
>   same basename are given to ar, resulting in messages
like:
>     ar: FSUM9942 "mpn/mul.o" ignored, same
basename as "mpq/mul.o".
>   I made a little script that copied all relevant
objects to a single
>   directory (replacing / by _ so I got files like
mpf_fits_sint.o) in
>   order to easily (re)create a complete libgmp.a.
>   I would consider this a libtool bug; adding the same
file (or files
>   with the same basename) to a library multiple times
works fine as long
>   as it is not in a single invocation of ar. So perhaps
the libtool
>   configury should detect this issue and avoid
including multiple files
>   with the same basename during piecewise linking.

This has most definitely seen bugfixing since 1.5.6.  We'd
be interested
in issues occurring with 1.5.24 or CVS HEAD here.

> - [LIBTOOL] During installation, the "libraries
have been installed in"
>   message is shown, but the shell's print builtin (used
in $echo) shows
>   an error for the line of dashes:
>     print: ./libtool 6200: FSUM6241 Unknown option
"--"
>     print: ./libtool 6200: Usage: print [-nprRsu[n]]
[arg ...]
>   Preceding the string with -- makes this go away
($echo -- "--...").

Again, seeing the exact libtool config would help here. 
What shell is
the one chosen as $SHELL (ksh version?  Use 'set -o emacs;
CTRL-v' to
find out version string)?

I'd be interested in EBCDIC-related failures of current
Libtool on this
host.

Cheers,
Ralf
_______________________________________________
gmp-bugs mailing list
gmp-bugsswox.com
http://swox
.com/mailman/listinfo/gmp-bugs

Re: GMP: IBM mainframe build results
country flaguser name
Belgium
2007-07-13 09:11:43
Ralf Wildenhues wrote:
>> - [LIBTOOL] by default, the compilers require that
files come last on
>>   the command line, and many versions of libtool
(including the one
>>   included with GMP) break this rule when configure
has determined -c
>>   and -o can both be used (it puts the -o last). To
work around this,
>>   the envvar _CC/C89/CXX_CCMODE needs to be set to
1.
> 
> This we can probably fix.  Please post
>   ./libtool --config

Attached as libtool.config.

> also the depmode configure has settled on.  Thanks.

No depmode - the compiler has no -M option or equivalent,
which is a
serious PITA when trying to fix portability issues (change a
header and
you're forced to make clean to make sure you catch all
clients of that
header - and when a compile takes hours, that's not fun).

>> - I didn't build the C++ wrappers, but because they
use the .cc
>>   extension, the _CXX_CXXSUFFIX envvar would need
to be set to "cc" to
>>   succeed (by default, the compiler only accepts
foo.C as a C++ source).
> 
> Yuck.  MSVC needs .cpp, so to avoid having to set this,
Autoconf would
> need a further test for $ac_ext in the C++ case.  Also,
it's not
> feasible to expect that user code change their file
names on the fly, so
> I assume that since your compiler can be taught (by
_CXX_CXXSUFFIX) it
> is better to stick with '.cpp'.  :-/

As far as I can tell, autoconf makes no attempt to detect
the extension
at all - what's worse, the extension it tries seems to be
version-dependent; for gmp and libxml2 it uses .cc for its
conftest
files (so I had set $_CXX_CXXSUFFIX in my .profile to make
the problem
go away), but I'm trying to configure libiconv now, where
autoconf uses
.cpp.  I suppose this is really an autoconf failing - it
should perhaps
try cc, cpp and C and use whichever the compiler accepts. In
any case,
this was a remark solely intended for GMP's platform notes;
the user can
be reasonably expected to set the envvar appropriately.

>> - [LIBTOOL] MAJOR: The system 'ar' does not store
paths, only basenames,
>>   and during the (piecewise) link of libgmp.la,
multiple files with the
>>   same basename are given to ar, resulting in
messages like:
>>     ar: FSUM9942 "mpn/mul.o" ignored,
same basename as "mpq/mul.o".
>>   I made a little script that copied all relevant
objects to a single
>>   directory (replacing / by _ so I got files like
mpf_fits_sint.o) in
>>   order to easily (re)create a complete libgmp.a.
>>   I would consider this a libtool bug; adding the
same file (or files
>>   with the same basename) to a library multiple
times works fine as long
>>   as it is not in a single invocation of ar. So
perhaps the libtool
>>   configury should detect this issue and avoid
including multiple files
>>   with the same basename during piecewise linking.
> 
> This has most definitely seen bugfixing since 1.5.6. 
We'd be interested
> in issues occurring with 1.5.24 or CVS HEAD here.

OK - but since I don't have autotools set up, I can't easily
update the
libtool in use by GMP (and since it would take >10 hours
for me to get a
result if I did, I'm not that inclined to try either). If a
future
version of GMP uses such a newer libtool, and I have cause
to build that
on OpenMVS, I'll let you know what I get though.

>> - [LIBTOOL] During installation, the
"libraries have been installed in"
>>   message is shown, but the shell's print builtin
(used in $echo) shows
>>   an error for the line of dashes:
>>     print: ./libtool 6200: FSUM6241 Unknown option
"--"
>>     print: ./libtool 6200: Usage: print
[-nprRsu[n]] [arg ...]
>>   Preceding the string with -- makes this go away
($echo -- "--...").
> 
> Again, seeing the exact libtool config would help here.
 What shell is
> the one chosen as $SHELL (ksh version?  Use 'set -o
emacs; CTRL-v' to
> find out version string)?

There is only the One True IBM Shell /bin/sh - it has pretty
decent
ksh/bash-like features though. CTRL-V is out of the question
- input is
from a z/OS prompt that is fed to the shell, so such
characters don't
get through. "ident /bin/sh" suggests it's a build
from around March
2003, if that matters.

> I'd be interested in EBCDIC-related failures of current
Libtool on this
> host.

libtool didn't seem to have any EBCDIC issues - at least not
as part of
this build. I haven't tried to configure/build/check libtool
itself.

_______________________________________________
gmp-bugs mailing list
gmp-bugsswox.com
http://swox
.com/mailman/listinfo/gmp-bugs

  
Re: GMP: IBM mainframe build results
user name
2007-07-16 14:03:35
* Tim Van Holder wrote on Fri, Jul 13, 2007 at 04:11:43PM
CEST:
> Ralf Wildenhues wrote:
> >> - [LIBTOOL] by default, the compilers require
that files come last on
> >>   the command line, and many versions of
libtool (including the one
> >>   included with GMP) break this rule when
configure has determined -c
> >>   and -o can both be used (it puts the -o
last). To work around this,
> >>   the envvar _CC/C89/CXX_CCMODE needs to be
set to 1.
> > 
> > This we can probably fix.  Please post
> >   ./libtool --config
> 
> Attached as libtool.config.

Thanks.  I needed to think a bit more about this.  If I
understand you
correctly, then the failure occurs at 'make' time rather
than at
'configure' time, right?  And it's the linking steps of
*programs* that
fail rather than compilation (with -c; automake always puts
the source
file last when compiling), and neither the generation of
libraries,
because you only generate static ones with ar.  Right?

Could you post an actual of this failing command, including
commands
that generated it, if any?

> > also the depmode configure has settled on. 
Thanks.
> 
> No depmode - the compiler has no -M option or
equivalent, which is a
> serious PITA when trying to fix portability issues
(change a header and
> you're forced to make clean to make sure you catch all
clients of that
> header - and when a compile takes hours, that's not
fun).

Well you can enable trying the slow dependency extractors
with
   ./configure --enable-dependency-tracking

then also things like makedepend or "parsing"
preprocessor output (by
the depcomp script) will be tried.

> >> - I didn't build the C++ wrappers, but because
they use the .cc
> >>   extension, the _CXX_CXXSUFFIX envvar would
need to be set to "cc" to
> >>   succeed (by default, the compiler only
accepts foo.C as a C++ source).
> > 
> > Yuck.  MSVC needs .cpp, so to avoid having to set
this, Autoconf would
> > need a further test for $ac_ext in the C++ case. 
Also, it's not
> > feasible to expect that user code change their
file names on the fly, so
> > I assume that since your compiler can be taught
(by _CXX_CXXSUFFIX) it
> > is better to stick with '.cpp'.  :-/
> 
> As far as I can tell, autoconf makes no attempt to
detect the extension
> at all - what's worse, the extension it tries seems to
be
> version-dependent; for gmp and libxml2 it uses .cc for
its conftest
> files (so I had set $_CXX_CXXSUFFIX in my .profile to
make the problem
> go away), but I'm trying to configure libiconv now,
where autoconf uses
> .cpp.  I suppose this is really an autoconf failing -
it should perhaps
> try cc, cpp and C and use whichever the compiler
accepts.

Well, yes, that was sort of what I was trying to say:

Autoconf changed from '.cc' to '.cpp' exactly because nobody
could
report a compiler that failed with '.cpp', but there was a
report that
MSVC would mess up with '.cc'.  It's your report now that
made me (at
least) aware of a compiler that needed '.cc'.  The fact that
you have a
compiler that understands only '.cc' should be reported to
bug-autoconf.
(I assume the above is long-winded for violent agreement. 


> >> - [LIBTOOL] During installation, the
"libraries have been installed in"
> >>   message is shown, but the shell's print
builtin (used in $echo) shows
> >>   an error for the line of dashes:
> >>     print: ./libtool 6200: FSUM6241 Unknown
option "--"
> >>     print: ./libtool 6200: Usage: print
[-nprRsu[n]] [arg ...]
> >>   Preceding the string with -- makes this go
away ($echo -- "--...").

OK, this should be fixed in a newer Libtool release.

> >> - [LIBTOOL] MAJOR: The system 'ar' does not
store paths, only basenames,
> >>   and during the (piecewise) link of
libgmp.la, multiple files with the
> >>   same basename are given to ar, resulting in
messages like:
[...]
> > This has most definitely seen bugfixing since
1.5.6.  We'd be interested
> > in issues occurring with 1.5.24 or CVS HEAD here.
> 
> OK - but since I don't have autotools set up, I can't
easily update the
> libtool in use by GMP (and since it would take >10
hours for me to get a
> result if I did, I'm not that inclined to try either).
If a future
> version of GMP uses such a newer libtool, and I have
cause to build that
> on OpenMVS, I'll let you know what I get though.

One thing you can do that's more time-efficient is to
download
libtool-1.5.24, build it, go back to your gmp build tree
where
everything is already built that's needed for libgmp.la,
enter
the directory where libgmp.la is created and
  env LIBTOOL=/path/to/libtool-1.5.24-build/libtool make -e
libgmp.la

(Bourne shell notation) which should work.

Hope that helps.

Cheers, and thanks,
Ralf
_______________________________________________
gmp-bugs mailing list
gmp-bugsswox.com
http://swox
.com/mailman/listinfo/gmp-bugs

Re: GMP: IBM mainframe build results
country flaguser name
Belgium
2007-07-17 01:57:56
Ralf Wildenhues wrote:
> * Tim Van Holder wrote on Fri, Jul 13, 2007 at
04:11:43PM CEST:
>> Ralf Wildenhues wrote:
>>>> - [LIBTOOL] by default, the compilers
require that files come last on
>>>>   the command line, and many versions of
libtool (including the one
>>>>   included with GMP) break this rule when
configure has determined -c
>>>>   and -o can both be used (it puts the -o
last). To work around this,
>>>>   the envvar _CC/C89/CXX_CCMODE needs to be
set to 1.
>>> This we can probably fix.  Please post
>>>   ./libtool --config
>> Attached as libtool.config.
> 
> Thanks.  I needed to think a bit more about this.  If I
understand you
> correctly, then the failure occurs at 'make' time
rather than at
> 'configure' time, right?  And it's the linking steps of
*programs* that
> fail rather than compilation (with -c; automake always
puts the source
> file last when compiling), and neither the generation
of libraries,
> because you only generate static ones with ar.  Right?

Both compiles and links are affected.

For the linking, automake puts the -o at the end itself, so
it is
at least partially to blame. Then again, libtool does
already move
the -o to a place before the list of libraries, so it could
just as
easily move it before the object file name too.

For the compilation, the relevant bit in ltmain.sh is (line
989 in the
first ltmain.sh that comes to hand):

      if test "$pic_mode" != yes; then
	# Don't build PIC code
	command="$base_compile $qsrcfile"
      else
	command="$base_compile $qsrcfile $pic_flag"
      fi
      if test "$compiler_c_o" = yes; then
	command="$command -o $obj"
      fi

If this is changed to

      command=$base_compile
      if test "$pic_mode" = yes; then
	command="$base_compile $pic_flag"
      fi
      if test "$compiler_c_o" = yes; then
	command="$command -o $obj"
      fi
      command="$command $qsrcfile"

I believe that it will retain its current functionality
while also
guaranteeing the source file comes last. Currently, even
without -c -o
being able to be used together, it would still put -fPIC or
whatever at
the end -- not an issue for OpenMVS (no PIC flag detected),
but it could
cause similar invocation troubles on some other host.

> Could you post an actual of this failing command,
including commands
> that generated it, if any?

These are from libiconv, not GMP, but that shouldn't
matter.

Linking:

/bin/sh ../libtool --mode=link /bin/c89  iconv_no_i18n.o
../srclib/libicrt.a ../lib/libiconv.la -o iconv_no_i18n
mkdir .libs
chmod 777 .libs
/bin/c89 iconv_no_i18n.o -o iconv_no_i18n 
../srclib/libicrt.a
../lib/.libs/libiconv.a
FSUM3008 Specify a file with the correct suffix (.c, .i, .s,
.o, .x, .p,
.I, or .a), or a corresponding data set name, instead of
-o.

Compiling:

/bin/sh ../libtool --mode=compile /bin/c89 -I. -I. -I..
-I./..
-I../include -g -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED
-DLIBDIR="/usr/local/lib" -DBUILDING_LIBCHARSET
-DBUILDING_DLL
-DENABLE_RELOCATABLE=1 -DIN_LIBRARY
-DINSTALLDIR="/usr/local/lib"
-DNO_XMALLOC
-Dset_relocation_prefix=libcharset_set_relocation_prefix
-Drelocate=libcharset_relocate -DHAVE_CONFIG_H -c
./relocatable.c
 /bin/c89 -I. -I. -I.. -I./.. -I../include -g
-D_XOPEN_SOURCE
-D_XOPEN_SOURCE_EXTENDED
-DLIBDIR="/usr/local/lib"
-DBUILDING_LIBCHARSET -DBUILDING_DLL -DENABLE_RELOCATABLE=1
-DIN_LIBRARY
-DINSTALLDIR="/usr/local/lib" -DNO_XMALLOC
-Dset_relocation_prefix=libcharset_set_relocation_prefix
-Drelocate=libcharset_relocate -DHAVE_CONFIG_H -c
./relocatable.c -o
relocatable.o
FSUM3008 Specify a file with the correct suffix (.c, .i, .s,
.o, .x, .p,
.I, or .a), or a corresponding data set name, instead of
-o.

>>> also the depmode configure has settled on. 
Thanks.
>> No depmode - the compiler has no -M option or
equivalent, which is a
>> serious PITA when trying to fix portability issues
(change a header and
>> you're forced to make clean to make sure you catch
all clients of that
>> header - and when a compile takes hours, that's not
fun).
> 
> Well you can enable trying the slow dependency
extractors with
>    ./configure --enable-dependency-tracking
> 
> then also things like makedepend or "parsing"
preprocessor output (by
> the depcomp script) will be tried.

I can try - but things are very slow as they are, and I'm
loathe to
introduce even more slowdown. Still, it would help for
packages where I
need to do nontrivial porting work. Thanks.

> Autoconf changed from '.cc' to '.cpp' exactly because
nobody could
> report a compiler that failed with '.cpp', but there
was a report that
> MSVC would mess up with '.cc'.  It's your report now
that made me (at
> least) aware of a compiler that needed '.cc'.  The fact
that you have a
> compiler that understands only '.cc' should be reported
to bug-autoconf.
> (I assume the above is long-winded for violent
agreement.  

It is (and the compiler by default works for neither .cc nor
.cpp - it
needs .C). I'll file a report with autoconf when I have
time; my current
workaround is viable so it's not a blocking issue.

>>>> - [LIBTOOL] MAJOR: The system 'ar' does not
store paths, only basenames,
>>>>   and during the (piecewise) link of
libgmp.la, multiple files with the
>>>>   same basename are given to ar, resulting
in messages like:
> [...]
>>> This has most definitely seen bugfixing since
1.5.6.  We'd be interested
>>> in issues occurring with 1.5.24 or CVS HEAD
here.
>> OK - but since I don't have autotools set up, I
can't easily update the
>> libtool in use by GMP (and since it would take
>10 hours for me to get a
>> result if I did, I'm not that inclined to try
either). If a future
>> version of GMP uses such a newer libtool, and I
have cause to build that
>> on OpenMVS, I'll let you know what I get though.
> 
> One thing you can do that's more time-efficient is to
download
> libtool-1.5.24, build it, go back to your gmp build
tree where
> everything is already built that's needed for
libgmp.la, enter
> the directory where libgmp.la is created and
>   env LIBTOOL=/path/to/libtool-1.5.24-build/libtool
make -e libgmp.la
> 
> (Bourne shell notation) which should work.

I'll try that when I can fit it in.

_______________________________________________
gmp-bugs mailing list
gmp-bugsswox.com
http://swox
.com/mailman/listinfo/gmp-bugs

Re: GMP: IBM mainframe build results
user name
2007-07-18 15:37:44
* Tim Van Holder wrote on Tue, Jul 17, 2007 at 08:57:56AM
CEST:
[...]
> Both compiles and links are affected.
> 
> For the linking, automake puts the -o at the end
itself, so it is
> at least partially to blame. Then again, libtool does
already move
> the -o to a place before the list of libraries, so it
could just as
> easily move it before the object file name too.
> 
> For the compilation, the relevant bit in ltmain.sh is
(line 989 in the
> first ltmain.sh that comes to hand):
[...]
> If this is changed to
> 
>       command=$base_compile
>       if test "$pic_mode" = yes; then
> 	command="$base_compile $pic_flag"
>       fi
>       if test "$compiler_c_o" = yes; then
> 	command="$command -o $obj"
>       fi
>       command="$command $qsrcfile"
> 
> I believe that it will retain its current functionality
while also
> guaranteeing the source file comes last. Currently,
even without -c -o
> being able to be used together, it would still put
-fPIC or whatever at
> the end -- not an issue for OpenMVS (no PIC flag
detected), but it could
> cause similar invocation troubles on some other host.

Well, all good and well, except that I found this commit in
the
archives:

| 1999-10-28  Stephane Conversy  <Stephane.Conversylri.fr>
| 
|         * ltmain.in (-DPIC):  changed the order of pic
flags a little to
|         prevent upsetting the sgi c++ compiler.

<h
ttp://cvs.savannah.gnu.org/viewvc/libtool/ltmain.in?hideatti
c=0&root=libtool&r1=1.196&r2=1.197>

Since I did not manage to find corresponding discussion, so
I don't know
whether this compiler is still in use, nor whether it can be
worked
around there; maybe we should just leave things the way they
are.

It may be helpful to document how to get things working on
OpenVMS.
Also I should point out that Thien-Thi Nguyen has been
maintaining
a port of Autoconf to VMS at some point in time.  It used to
be at
<http://www.glug.org/people/ttn/software/autoconf-fo
r-vms/>
but I don't know where it went, can't find it now.

Cheers,
Ralf
_______________________________________________
gmp-bugs mailing list
gmp-bugsswox.com
http://swox
.com/mailman/listinfo/gmp-bugs

[1-6]

about | contact  Other archives ( Real Estate discussion Medical topics )