[Bug 205394] lang/gcc49, lang/gcc5, devel/powerpc64-gcc on powerpc64: lib32's libedit fails to compile, 10 line source shows the problem
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Fri Dec 18 06:25:53 UTC 2015
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=205394
Bug ID: 205394
Summary: lang/gcc49, lang/gcc5, devel/powerpc64-gcc on
powerpc64: lib32's libedit fails to compile, 10 line
source shows the problem
Product: Ports & Packages
Version: Latest
Hardware: ppc
OS: Any
Status: New
Severity: Affects Only Me
Priority: ---
Component: Individual Port(s)
Assignee: bapt at FreeBSD.org
Reporter: markmi at dsl-only.net
CC: freebsd-ppc at FreeBSD.org
CC: freebsd-ppc at FreeBSD.org
Flags: maintainer-feedback?(bapt at FreeBSD.org)
Assignee: bapt at FreeBSD.org
The following simple example shows how/why buildworld for lib32 on powerpc64
fails to compile libedit.
lang/gcc49, lang/gcc5, and devel/powerpc64-gcc all fail to compile the
following "main.c" for -m32 on powerpc64.
#include "/usr/include/stddef.h"
const wchar_t* test(const wchar_t* p) { return p; }
int main(void)
{
const wchar_t* wcpt = test(L"test");
const wchar_t wcarray[] = L"test";
return 0;
}
For "gcc49 -m32 main.c" the result is:
# gcc49 -m32 main.c
main.c: In function 'main':
main.c:7:37: warning: passing argument 1 of 'test' from incompatible pointer
type
const wchar_t* wcpt = test(L"test");
^
main.c:3:16: note: expected 'const wchar_t *' but argument is of type 'long int
*'
const wchar_t* test(const wchar_t* p) { return p; }
^
main.c:8:5: error: array of inappropriate type initialized from string constant
const wchar_t wcarray[] = L"test";
^
gcc5 and powerpc64-gcc get the same.
A possible fix via an addition to lang/gcc5's and devel/powerpc64-gcc's
patch-gcc-freebsd-powerpc64 would look like (tabs likely not preserved):
+@@ -304,7 +317,7 @@
+
+ /* rs6000.h gets this wrong for FreeBSD. We use the GCC defaults instead.
*/
+ #undef WCHAR_TYPE
+-#define WCHAR_TYPE (TARGET_64BIT ? "int" : "long int")
++#define WCHAR_TYPE "int"
+ #undef WCHAR_TYPE_SIZE
+ #define WCHAR_TYPE_SIZE 32
+
It appears that lang/gcc49, lang/gcc5-devel, and lang/gcc6-devel do not have a
patch-gcc-freebsd-powerpc64 (yet?). Nor lang/gcc48 or older. At least for gcc49
the content of a patch for this issue could be similar from what I can see.
I've not looked at the details for the others.
Note: FreeBSD for powerpc64 and its lib32 context define ___wchar_t as int:
# grep wchar_t /usr/include/machine/_types.h
typedef int ___wchar_t;
#define __WCHAR_MIN __INT_MIN /* min value for a wchar_t */
#define __WCHAR_MAX __INT_MAX /* max value for a wchar_t */
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the freebsd-ppc
mailing list