gtkd-developers / GlibD

D bindings for the GLib C Utility Library.
Other
5 stars 3 forks source link

Fails to build on Fedora 28 on ppc64 #3

Open Conan-Kudo opened 5 years ago

Conan-Kudo commented 5 years ago

I'm trying to build GlibD 2.0.2 on ppc64 for Fedora 28 using gir-to-d 0.18.0, and I'm getting the following error:

[1/332] ldc2 -Iglibd-2.0@sha -I. -I.. -Igenerated -I../generated -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -enable-color -release -w -g -O1 -relocation-model=pic   -of 'glibd-2.0@sha/ppc64-redhat-linux-gnu_generated_gtkd_Implement.d.o' -c ../ppc64-redhat-linux-gnu/generated/gtkd/Implement.d
FAILED: glibd-2.0@sha/ppc64-redhat-linux-gnu_generated_gtkd_Implement.d.o
ldc2 -Iglibd-2.0@sha -I. -I.. -Igenerated -I../generated -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -enable-color -release -w -g -O1 -relocation-model=pic   -of 'glibd-2.0@sha/ppc64-redhat-linux-gnu_generated_gtkd_Implement.d.o' -c ../ppc64-redhat-linux-gnu/generated/gtkd/Implement.d
generated/gobject/c/types.d(173): Error: basic type expected, not `private`
generated/gobject/c/types.d(173): Error: no identifier for declarator `_error_`
generated/gobject/c/types.d(173): Error: type only allowed if anonymous enum and no enum type
generated/gobject/c/types.d(173): Error: if type, there must be an initializer
generated/gobject/c/types.d(173): Error: found `private` when expecting `,`
generated/gobject/c/types.d(173): Error: basic type expected, not `=`
generated/gobject/c/types.d(173): Error: no identifier for declarator `_error_`
generated/gobject/c/types.d(173): Error: type only allowed if anonymous enum and no enum type
generated/gobject/c/types.d(201): Error: basic type expected, not `deprecated`
generated/gobject/c/types.d(201): Error: no identifier for declarator `_error_`
generated/gobject/c/types.d(201): Error: type only allowed if anonymous enum and no enum type
generated/gobject/c/types.d(201): Error: if type, there must be an initializer
generated/gobject/c/types.d(201): Error: found `deprecated` when expecting `,`
generated/gobject/c/types.d(201): Error: basic type expected, not `=`
generated/gobject/c/types.d(201): Error: no identifier for declarator `_error_`
generated/gobject/c/types.d(201): Error: type only allowed if anonymous enum and no enum type
generated/gobject/c/types.d(258): Error: basic type expected, not `deprecated`
generated/gobject/c/types.d(258): Error: no identifier for declarator `_error_`
generated/gobject/c/types.d(258): Error: type only allowed if anonymous enum and no enum type
generated/gobject/c/types.d(258): Error: if type, there must be an initializer

Any idea what's causing that?

MikeWey commented 5 years ago

Could you check line 173 of generated/gobject/c/types.d the enum members should all be upper case, but from the error it looks like that isn't the case for you.

And what version of ldc are you using?

Conan-Kudo commented 5 years ago

@MikeWey This is with LDC 1.8.0.

line 173:

        private = 32,
Conan-Kudo commented 5 years ago

It appears that all the enums are lower case.

MikeWey commented 5 years ago

It looks like ldc's support for ppc64 is broken, which is why the call to toUpper used by gir-to-d doesn't work.

https://github.com/ldc-developers/ldc/issues/2410

Conan-Kudo commented 5 years ago

I see. 😢

MikeWey commented 5 years ago

You could try GDC if it's available.

Conan-Kudo commented 5 years ago

GDC unfortunately just became available for Fedora 30, since it was only just mainlined into GCC for GCC 9.

Debian had been patching in GDC into their GCC builds for years, but Fedora had not.

Cogitri commented 4 years ago

I don't think GDC can be used on ppc64 either since libgphobos doesn't build on ppc64(le) yet apparently