Bug 50422 - rpm 4.0.3 CVS: Use of __va_copy().
Summary: rpm 4.0.3 CVS: Use of __va_copy().
Keywords:
Status: CLOSED DEFERRED
Alias: None
Product: Red Hat Raw Hide
Classification: Retired
Component: rpm
Version: 1.0
Hardware: sparc
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Jeff Johnson
QA Contact: David Lawrence
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2001-07-31 02:40 UTC by Red Hat Bugzilla
Modified: 2008-03-13 19:18 UTC (History)
0 users

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2001-07-31 03:15:14 UTC
Embargoed:


Attachments (Terms of Use)

Description Red Hat Bugzilla 2001-07-31 02:40:01 UTC
Fresh CVS of rpm 4.0.3/rpmio/rpmlog.c uses __va_copy() in the event that
GLIBC is
not defined and/or not recent enough.  This works fine for most platforms
if you're using
gcc, since it implements that (former) extension.  Most vendor compilers,
including the
up-to-date Forte C compiler on Solaris don't have that (it does have
va_copy() in
stdarg.h, though).  Note that va_copy() is part of the C9X standard now,
but it will
likely be a while before it's been implemented in most compilers.

I'm not sure why the call to __va_copy() is there -- the code is the same
for the GLIBC
case where

	2 < glibc version < 2.1.x 

*except* that the __va_copy() is missing there.

In any case, depending on __va_copy() is going to provide for portability
problems.

Comment 1 Red Hat Bugzilla 2001-07-31 02:52:52 UTC
__va_copy was added, and is apparently necessary, on ppc-linux and s390-linux.
There was a recent note on rpm-list (from Franz Sirl?) asking for yet another
fiddle
with __va_copy.

Comment 2 Red Hat Bugzilla 2001-07-31 03:15:08 UTC
Thanks, I'll check through the archive.

Since it's needed on some architectures, the best thing might be to check for
its existence with
configure.

The question is, are there platforms where it does any harm?

Comment 3 Red Hat Bugzilla 2001-08-04 18:32:37 UTC
__va_copy is in stdarg.h and/or varargs.h, so you should
look in the gcc-lib private include.

Meanwhile, since I have no platform that *must* have
__va_copy, I'm gonna defer this bug until someone tells
me the right thing to do.


Note You need to log in before you can comment on or make changes to this bug.