icu strict-prototypes with some icu versions 4.2 - 4.9 #867

Closed
thowe opened this Issue Nov 14, 2012 · 5 comments

Projects

None yet

3 participants

@thowe
thowe commented Nov 14, 2012

-Werror=strict-prototypes with icu 42-49 on src/string/encoding/shared.c

with Rakudo Star 2012.10 when doing perl Configure.pl --gen-parrot it fails with the following:

cc -I./include -I./include/pmc -DNO_LOCALE_NUMERIC -DNO_LOCALE_COLLATE  -fno-delete-null-pointer-checks -pipe -fstack-protector -I/usr/local/include -pthread -DHASATTRIBUTE_CONST  -DHASATTRIBUTE_DEPRECATED  -DHASATTRIBUTE_MALLOC  -DHASATTRIBUTE_NONNULL  -DHASATTRIBUTE_NORETURN  -DHASATTRIBUTE_PURE  -DHASATTRIBUTE_UNUSED  -DHASATTRIBUTE_WARN_UNUSED_RESULT  -DDISABLE_GC_DEBUG=1 -DNDEBUG  -D_POSIX_TIMERS -DCLOCK_BEST=CLOCK_MONOTONIC -DPIC -fPIC  -O2 -falign-functions=16 -funit-at-a-time -maccumulate-outgoing-args -W -Wall -Waggregate-return -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment -Wdisabled-optimization -Wdiv-by-zero -Wendif-labels -Wextra -Wformat -Wformat-extra-args -Wformat-nonliteral -Wformat-security -Wformat-y2k -Wimplicit -Wimport -Winit-self -Winline -Winvalid-pch -Werror=missing-braces -Wmissing-declarations -Wmissing-field-initializers -Wno-missing-format-attribute -Wmissing-include-dirs -Wmultichar -Wpacked -Wparentheses -Wpointer-arith -Wpointer-sign -Wreturn-type -Wsequence-point -Wsign-compare -Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch -Wswitch-default -Wtrigraphs -Werror=undef -Wno-unused -Wunknown-pragmas -Wvariadic-macros -Wwrite-strings -Wc++-compat -Werror=declaration-after-statement -Werror=implicit-function-declaration -Wmissing-prototypes -Werror=nested-externs -Werror=old-style-definition -Werror=strict-prototypes -fvisibility=hidden -Isrc/string/encoding -Isrc/ -o src/string/encoding/shared.o -c src/string/encoding/shared.c
In file included from /usr/local/include/unicode/unorm2.h:33,
                 from /usr/local/include/unicode/unorm.h:23,
                 from src/string/encoding/shared.c:31:
/usr/local/include/unicode/uset.h:250: error: function declaration isn't a prototype
gmake: *** [src/string/encoding/shared.o] Error 1
Command failed (status 512): gmake install-dev
Owner
leto commented Nov 14, 2012

Thanks for the bug report! Would you mind pasting the 10 lines before and after line 250 in uset.h (so we can get some context).

Would it be possible for you to configure/test Parrot directly on this machine to see if we can get any more details on this?

Thanks!

Member
rurban commented Nov 14, 2012

On Wed, Nov 14, 2012 at 12:54 PM, leto notifications@github.com wrote:

Thanks for the bug report! Would you mind pasting the 10 lines before and
after line 250 in uset.h (so we can get some context).

Would it be possible for you to configure/test Parrot directly on this
machine to see if we can get any more details on this?

I can reproduce it on my openbsd 4.9 vm with textproc/icu4c, i.e.
icu4c-4.4p0

$ gmake src/string/encoding/shared.i

249 "/usr/local/include/unicode/uset.h"

extern attribute((visibility("default"))) USet*
uset_openEmpty();

The void as uset_openEmpty() args missing.

Note that icu 4.9 has a known build problem on openbsd, see

http://tug.org/pipermail/tlbuild/2012q2/002348.html

Reini Urban
http://cpanel.net/ http://www.perl-compiler.org/

@rurban rurban pushed a commit that referenced this issue Nov 14, 2012
Reini Urban [GH #867] icu 4.4 uses a wrong uset_openEmpty(); function declaration
Since we cannot check icu in auto::warnings (it comes later), remove
-Werror=strict-prototypes from src/string/encoding/shared.c.

Note that I noticed an apprently wrong -I$(@D) macro in the suffix override rules, which looks wrong, but does no harm.
1cc9caa
Member
rurban commented Nov 14, 2012

Fixed and verified in master with 1cc9caa.

@rurban rurban closed this Nov 14, 2012
@rurban rurban pushed a commit that referenced this issue Nov 15, 2012
Reini Urban [GH #867] Provide icu_version config value
icu4.4 ships with an -Werror=strict-prototypes incompatible
header file. Currently we disable this warning for  src/string/encoding/shared.c
but we should rather check which icu versions ships this header, and change the
Configure logic (and order) to strip -Werror=strict-prototypes only with a bad icu_version
619aa95
@rurban rurban pushed a commit that referenced this issue Dec 18, 2012
Reini Urban [GH #867] Provide icu_version config value
icu4.4 ships with an -Werror=strict-prototypes incompatible
header file. Currently we disable this warning for  src/string/encoding/shared.c
but we should rather check which icu versions ships this header, and change the
Configure logic (and order) to strip -Werror=strict-prototypes only with a bad icu_version
375744e
@rurban rurban pushed a commit that referenced this issue Nov 8, 2014
Reini Urban [config] Provide icu_version config value, GH #867
icu4.4 ships with an -Werror=strict-prototypes incompatible
header file. Currently we disable this warning for  src/string/encoding/shared.c
but we should rather check which icu versions ships this header, and change the
Configure logic (and order) to strip -Werror=strict-prototypes only with a bad icu_version
75c6de4
@rurban rurban pushed a commit that referenced this issue Nov 8, 2014
Reini Urban [config] Provide icu_version config value, GH #867
icu4.4 ships with an -Werror=strict-prototypes incompatible
header file. Currently we disable this warning for  src/string/encoding/shared.c
but we should rather check which icu versions ships this header, and change the
Configure logic (and order) to strip -Werror=strict-prototypes only with a bad icu_version
0379de3
@rurban rurban pushed a commit that referenced this issue Nov 8, 2014
Reini Urban [config] Check icu_version for wrong uset_openEmpty() GH #867
Move step auto::warnings downwards after all probes.
See source/common/unicode/uset.h in icu.
For -Werror=strict-prototypes in src/string/encoding/shared.c.
https://ssl.icu-project.org/repos/icu/icu/tags/release-49-1/source/common/unicode/uset.h

This was broken from icu 42 until 49, fixed with 50.1
043f607
Member
rurban commented Nov 8, 2014

Skip -Werror=strict-prototypes only on broken icu 4.2 - 4.9

@rurban rurban reopened this Nov 8, 2014
@rurban rurban closed this Nov 8, 2014
@rurban rurban changed the title from error building parrot with Rakudo on OpenBSD 5.1 to icu strict-prototypes on OpenBSD 5.1 Nov 9, 2014
@rurban rurban changed the title from icu strict-prototypes on OpenBSD 5.1 to icu strict-prototypes with some icu versions 4.2 - 4.9 Nov 9, 2014
Member
rurban commented Nov 9, 2014

The version check needs to be improved a bit. On cygwin the version is stored as '4.8.1' not '48.1'

@rurban rurban reopened this Nov 9, 2014
@rurban rurban pushed a commit that referenced this issue Nov 9, 2014
Reini Urban [config] improve icu_version for 4.8.1 => 48.1 (cygwin)
this is needed for the auto::warnings check for GH #867
869a783
@rurban rurban pushed a commit that referenced this issue Nov 9, 2014
Reini Urban [config] sanitize icu_version for 4.8.1 => 48.1 (cygwin)
This is needed for the auto::warnings check for GH #867
a03cfa0
@rurban rurban closed this Nov 9, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment