<div dir="ltr">IBM supply a set of GNU utilities, including GCC-related software (and GCC, as well, if I recall correctly, but an old one) in an additional CD supplied with AIX. This is called something around &quot;Utilities for Linux&quot; or some other lie. So you do not need to force gcc to compile under AIX, but only use it.<div>
Same goes, probably, for many additional libraries.</div><div><br></div><div>P.S - they install in RPM format :-)</div><div><br></div><div>Ez<br><br><div class="gmail_quote">On Tue, Jul 27, 2010 at 11:32 PM, Oleg Goldshmidt <span dir="ltr">&lt;<a href="mailto:pub@goldshmidt.org">pub@goldshmidt.org</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">Omer Zak &lt;<a href="mailto:w1@zak.co.il">w1@zak.co.il</a>&gt; writes:<br>
<br>
</div><div class="im">&gt; What I mean is to use whatever preprocessor symbol that is defined when<br>
&gt; building using gcc, but undefined on AIX; or vice versa.<br>
<br>
</div>I see. I suspect you may need both __GNUC__ and _GNU_SOURCE to be<br>
defined for getline() to work in the context though: the first will<br>
react to compilation with gcc and the second will include the right<br>
bits from glibc. I have not checked, but it is not clear to me if one<br>
implies the other, I suspect not.<br>
<br>
In any case, the explicit requirement is that the resulting program<br>
should be portable (at least between Liux and AIX), and, I suppose,<br>
the fact that gets() is insecure should be an additional<br>
consideration.<br>
<br>
Yet another consideration is that newer incarnaions of POSIX removed<br>
gets() from requirements, AFAIK, neither Linux nor AIX actually ripped<br>
it out yet, but it may happen in the future (on Linux sooner than on<br>
AIX).<br>
<br>
So, between<br>
<br>
1. develop a non-portable Linux/gcc branch based on getline() and<br>
   choose at compile time with the preprocessor (keeping AIX insecure<br>
   with the existing, gets()-based code),<br>
<br>
2. develop a getline() branch for Linux and rewrite AIX with the<br>
   secure fgets(),<br>
<br>
3. develop a portable and secure fgets()-based implementation for both<br>
   AIX and Linux,<br>
<br>
I&#39;d vote for door #3.<br>
<br>
There is option 4 suggested by Nadav (rip getline() from glibc and use<br>
on AIX). Depending on circumstances, it may be fairly easy or<br>
completely unfeasible (it is, no doubt, feasible technically, it may<br>
be unfeasible operatonally) or anything in between.<br>
<div class="im"><br>
--<br>
Oleg Goldshmidt | <a href="mailto:pub@goldshmidt.org">pub@goldshmidt.org</a><br>
<br>
_______________________________________________<br>
</div><div><div></div><div class="h5">Linux-il mailing list<br>
<a href="mailto:Linux-il@cs.huji.ac.il">Linux-il@cs.huji.ac.il</a><br>
<a href="http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il" target="_blank">http://mailman.cs.huji.ac.il/mailman/listinfo/linux-il</a><br>
</div></div></blockquote></div><br></div></div>