[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] src/libs/libxutil/XFontName.c(utoa): non-GNU stdlib.h confli
Re: [PATCH] src/libs/libxutil/XFontName.c(utoa): non-GNU stdlib.h conflict
Thu, 23 Feb 2023 10:04:41 -0700
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0
On 2023-02-23 09:07, G. Branden Robinson wrote:
At 2023-02-23T00:46:45-0700, Brian Inglis wrote:
gcc 11.3 build failure when static utoa definition in XFontName.c
conflicts with extern utoa declared in stdlib.h
(but is not a WG14- or POSIX-standardized function)
third argument is usually int conversion radix instead of groff int
buffer size in non-GNU libc including newlib, QNX, IBM, others
Can you say specifically which system you built on?
newlib under Cygwin - catches glibc and linux assumptions
Bertrand and I have tentatively agreed to make the next tag the final
one for 1.23.0. (He might change his mind after seeing my next push,
but I sent him a diff of Savannah master and my working copy yesterday.)
I've been trying to avoid making changes to compiled code as the release
candidates have progressed.
I therefore think this issue is out of reach for groff 1.23.0 final.
I'll add a release note or caveat to the announcement advising people on
such platforms to build without X11 support (./configure --without-x).
I get the feeling not a lot of people use gxditview or xtotroff anyway.
I'm also a bit curious. This issue seems like it should have arisen
Recent gcc dropping legacy language feature support and adding stricter
diagnosis as errors where possible, where previously only gave warnings?
.../src/libs/libxutil/XFontName.c: At top level:
.../src/libs/libxutil/XFontName.c:122:1: error: static declaration of ‘utoa’
follows non-static declaration
122 | utoa (unsigned int u, char *s, int size)
In file included from ./lib/stdlib.h:28,
/usr/include/stdlib.h:228:9: note: previous declaration of ‘utoa’ with type
‘char *(unsigned int, char *, int)’
228 | char * utoa (unsigned, char *, int);
make: *** [Makefile:8017: src/libs/libxutil/libxutil_a-XFontName.o] Error 1
utoa renamed to utoan as groff definition is static with 3rd argument
int buffer size instead of conversion radix
We can return to this issue after groff 1.23.0 final, but I think I'd
rather rename the functions with a prefix. "xutil_" or something.
C's refusal to embrace name spaces has always been a problem.
[ Obligatory partisanship: Ada 83 had them. ;-) ]
[other functions commonly defined are itoa, ultoa, ftoa, dtoa]
Yes, probably best to make this change systematically since we don't
know what some crazy libc is going to define.
Did not find any related functions in current code base.
Could you file a Savannah ticket about this so it doesn't get forgotten
Take care. Thanks, Brian Inglis Calgary, Alberta, Canada
La perfection est atteinte Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter not when there is no more to add
mais lorsqu'il n'y a plus rien à retirer but when there is no more to cut
-- Antoine de Saint-Exupéry