Date: Fri, 18 Dec 2015 06:25:52 +0000 From: bugzilla-noreply@freebsd.org To: freebsd-ppc@FreeBSD.org Subject: [Bug 205394] lang/gcc49, lang/gcc5, devel/powerpc64-gcc on powerpc64: lib32's libedit fails to compile, 10 line source shows the problem Message-ID: <bug-205394-21@https.bugs.freebsd.org/bugzilla/>
next in thread | raw e-mail | index | archive | help
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@FreeBSD.org Reporter: markmi@dsl-only.net CC: freebsd-ppc@FreeBSD.org CC: freebsd-ppc@FreeBSD.org Flags: maintainer-feedback?(bapt@FreeBSD.org) Assignee: bapt@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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-205394-21>