I ran into a situation (I don't remember the exact details, unfortunately), where the C compiler supports asprintf() but the C++ compiler doesn't. I believe this came up when I was compiling with gcc (C) and xlC (C++). But it might have been another set of compilers -- I unfortunately don't have the notes on the issue with me right now.

I think the simple solution is to not use asprintf in C++ applications and avoid the issue of C/C++ incompatibilities.

Brian

On Sep 12, 2006, at 7:20 AM, Jeff Squyres wrote:

We actually have a portable version of asprintf() in the OMPI code base. On platforms that don't support asprintf(), the configure magically swaps in
the OMPI equivalent.

See opal/util/printf.c.


On 9/12/06 6:07 AM, "Christian Siebert"
<christian.sieb...@cs.tu-chemnitz.de> wrote:

Hi again,

there is a tiny portability problem located in ompi/tools/ ompi_info/param.cc.
This code uses the asprintf() function, which is a GNU extension and
therefore not very portable. Fortunately, it is not hard to exchange
the line

   asprintf(&value_string, "%d", value_int);

with a separate buffer allocation and the ANSI C function sprintf()
(although I'd prefer a pre-allocated buffer). Tip: an integer (whether
signed or unsigned) has at most ceil(sizeof(int)*2.41) decimal digits
(don't forget the trailing null byte!).

   Christian

PS: Thanks Jeff for filing the last bug I've mailed.


_______________________________________________
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel


--
Jeff Squyres
Server Virtualization Business Unit
Cisco Systems
_______________________________________________
devel mailing list
de...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/devel

Reply via email to