f



Re: Using 'varargs' vs 'stdargs'

This is a multi-part message in MIME format.
--------------040007030802060004000808
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

Aaron and Andreas,

I don't know anything about 'stdargs' either, but a key quesiton is 
whether it is just a change to the syntax of  varargs handling or the 
way it is actually achieved (which I think for varargs was by passing a 
count of the number of args followed by the args themselves on the 
callstack, but I may be wrong - anyway it doesn't really matter, what 
matters is, has it changed?). This is important because some native pop 
code in the Xt interface invokes external C procedures using the varargs 
protocol, but possibly not via an actual C wrapper, so it wouldn't have 
been caught by a global change to C files. If anyone thinks there's an 
issue here, I could try and rediscover whether/where it happens in more 
detail.

Roger

PS: Aaron, re your question about users of  x86 solaris. I do actually 
have an x86 solaris machine sitting in my office, and a while ago had 
the intention of trying to rebuild the x86 system (because I think in 
one of the system notices you comment that it would be nice i someone 
could do so). *BUT* this system has been switched off
 for a good few months now, and is unlikely to ever be switched on again 
- we'd probably rebuild the system as linux instead.


Aaron Sloman wrote:

>The changes to the Poplog Widget Set sources in $usepop/pop/x/Xpw
>suggested by Andreas Eder, appear to be a move from an old style of C
>programming involving 'varargs' to a newer style involving 'stdargs'.
>
>As I am not a C programmer I know nothing about this.
>
>I've tentatively (and blindly) incorporated his changes into a copy of
>the edited Xpw sources here:
>
>	http://www.cs.bham.ac.uk/research/poplog/src/new/x/Xpw/Xpw.tar.gz
>
>which can be un-tarred into
>	$usepop/pop/x
>
>if anyone wants to try compiling them and then re-linking.
>
>I've checked that the changed version works on redhat 8.
>
>Should I assume that the changed version should be included
>from now on as standard?
>
>Andreas wrote:
>/
>  
>
>>...my
>>gcc (version 3.3 20030226 (prerelease) (SuSE Linux)) no longer
>>supports the use of varargs, but insists on using stdarg.
>>    
>>
>
>Presumably this is a generally agreed change in standards, and we should
>simply follow the standard?
>
>It would be nice not to have to have a different version of poplog for
>SuSe users.
>
>Aaron
>
>  
>

--------------040007030802060004000808
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
  <title></title>
</head>
<body text="#000000" bgcolor="#ffffff">
Aaron and Andreas,<br>
<br>
I don't know anything about 'stdargs' either, but a key quesiton is
whether it is just a change to the syntax of&nbsp; varargs handling or the
way it is actually achieved (which I think for varargs was by passing a
count of the number of args followed by the args themselves on the
callstack, but I may be wrong - anyway it doesn't really matter, what
matters is, has it changed?). This is important because some native pop
code in the Xt interface invokes external C procedures using the
varargs protocol, but possibly not via an actual C wrapper, so it
wouldn't have been caught by a global change to C files. If anyone
thinks there's an issue here, I could try and rediscover whether/where
it happens in more detail.<br>
<br>
Roger<br>
<br>
PS: Aaron, re your question about users of&nbsp; x86 solaris. I do actually
have an x86 solaris machine sitting in my office, and a while ago had
the intention of trying to rebuild the x86 system (because I think in
one of the system notices you comment that it would be nice i someone
could do so). *BUT* this system has been switched off<br>
&nbsp;for a good few months now, and is unlikely to ever be switched on
again - we'd probably rebuild the system as linux instead.<br>
<br>
<br>
Aaron Sloman wrote:<br>
<blockquote type="cite"
 cite="mid200311090013.hA90DSp7009167@acws-0051.cs.bham.ac.uk">
  <pre wrap="">The changes to the Poplog Widget Set sources in $usepop/pop/x/Xpw
suggested by Andreas Eder, appear to be a move from an old style of C
programming involving 'varargs' to a newer style involving 'stdargs'.

As I am not a C programmer I know nothing about this.

I've tentatively (and blindly) incorporated his changes into a copy of
the edited Xpw sources here:

	<a class="moz-txt-link-freetext" href="http://www.cs.bham.ac.uk/research/poplog/src/new/x/Xpw/Xpw.tar.gz">http://www.cs.bham.ac.uk/research/poplog/src/new/x/Xpw/Xpw.tar.gz</a>

which can be un-tarred into
	$usepop/pop/x

if anyone wants to try compiling them and then re-linking.

I've checked that the changed version works on redhat 8.

Should I assume that the changed version should be included
from now on as standard?

Andreas wrote:
/
  </pre>
  <blockquote type="cite">
    <pre wrap="">...my
gcc (version 3.3 20030226 (prerelease) (SuSE Linux)) no longer
supports the use of varargs, but insists on using stdarg.
    </pre>
  </blockquote>
  <pre wrap=""><!---->
Presumably this is a generally agreed change in standards, and we should
simply follow the standard?

It would be nice not to have to have a different version of poplog for
SuSe users.

Aaron

  </pre>
</blockquote>
</body>
</html>

--------------040007030802060004000808--




0
Roger
11/10/2003 9:49:18 AM
comp.lang.pop 638 articles. 1 followers. Post Follow

1 Replies
442 Views

Similar Articles

[PageSpeed] 47

Roger.Evans@itri.brighton.ac.uk writes:

> I don't know anything about 'stdargs' either, but a key quesiton is 
> whether it is just a change to the syntax of  varargs handling or the 
> way it is actually achieved (which I think for varargs was by passing a 
> count of the number of args followed by the args themselves on the 
> callstack, but I may be wrong - anyway it doesn't really matter, what 
> matters is, has it changed?). This is important because some native pop 
> code in the Xt interface invokes external C procedures using the varargs 
> protocol, but possibly not via an actual C wrapper, so it wouldn't have 
> been caught by a global change to C files. If anyone thinks there's an 
> issue here, I could try and rediscover whether/where it happens in more 
> detail.

Well, I don't know how 'stdarg' or 'varargs' is implemented in gcc -
but I do know that using 'stdarg' is the ANSI C way of handling
variable arguments (and varargs was a pre-ansi unix way of doing it).
I guess that the implementation is still done much the same way tough,
but it enables slightly better error checking by the compiler.

'Andreas
-- 
Wherever I lay my .emacs, there�s my $HOME.
0
Andreas
11/10/2003 9:03:09 PM
Reply: