git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [RFC/PATCH] Update compat/regex

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Jul 16, 2010, 13:58 UTC
Message-ID
<AANLkTimQZDT3PuiLDdjPXzWlLiEI5Iv1zy5iFPlRswyC@mail.gmail.com>
In-Reply-To
<20100715220059.GA3312@burratino>
On Thu, Jul 15, 2010 at 22:00, Jonathan Nieder <jrnieder@gmail.com> wrote:
Show 12 quoted lines
> The old glibc regular expression library git uses does not support
> REG_STARTEND. Borrow the latest version from the GNU C library
> (version 2.12, license is LGPL 2.1 or later).
>
> Changes from glibc version: update the FSF address in the license
> header, use _LIBC_REGEX macro to allow building outside of glibc,
> add MAX, bool, true, and false macros to allow building with a C89
> compiler.
>
> Reintroduces warnings that were fixed in git before.  They can be
> defeated again separately.  Nevertheless this should be an
> improvement.
Those should be funneled upstream anyway, not just fixed in our tree.
Show 11 quoted lines
> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
> ---
> Ęvar Arnfjörš Bjarmason wrote:
>
>> Unfortunately that seems
>> easier said than done, since the library is now part of glibc, and has
>> aquired a lot of glibc specific macros and other constructs
>
> Oh, come on. :)
>
> Completely untested.

This patch has all the glibc-specific stuff that makes it break hard if you don't have the GNU C library. Writing macros/definitions to fix all that stuff up was the "easier said than done" part I was referring to.

It's probably not that hard (although I wouldn't put it past GNU to have e.g. GCC-specific stuff in the code, but I haven't checked), just tedious.

on Solaris:
    In file included from compat/regex/regex.c:73:
    compat/regex/regex_internal.c:40: error: syntax error before
"re_string_allocate"
    compat/regex/regex_internal.c:42: warning: return type defaults to `int'
    compat/regex/regex_internal.c:68: error: syntax error before
"re_string_construct"
    compat/regex/regex_internal.c:70: warning: return type defaults to `int'
    compat/regex/regex_internal.c:131: error: syntax error before
"re_string_realloc_buffers"
    compat/regex/regex_internal.c:132: warning: return type defaults to `int'
    compat/regex/regex_internal.c:132: error: conflicting types for
're_string_realloc_buffers'
    compat/regex/regex_internal.h:392: error: previous declaration of
're_string_realloc_buffers' was here
    compat/regex/regex_internal.c:132: error: conflicting types for
're_string_realloc_buffers'
    compat/regex/regex_internal.h:392: error: previous declaration of
're_string_realloc_buffers' was here
    compat/regex/regex_internal.c:572: error: syntax error before
"re_string_reconstruct"
    compat/regex/regex_internal.c:573: warning: return type defaults to `int'
    compat/regex/regex_internal.c: In function `re_string_reconstruct':
    compat/regex/regex_internal.c:687: warning: unused variable `prev_valid_len'
    compat/regex/regex_internal.c: At top level:
    compat/regex/regex_internal.c:962: error: syntax error before
"re_node_set_alloc"
    compat/regex/regex_internal.c:963: warning: return type defaults to `int'
    compat/regex/regex_internal.c:974: error: syntax error before
"re_node_set_init_1"
    compat/regex/regex_internal.c:975: warning: return type defaults to `int'
    compat/regex/regex_internal.c:990: error: syntax error before
"re_node_set_init_2"
    compat/regex/regex_internal.c:991: warning: return type defaults to `int'
    compat/regex/regex_internal.c:1020: error: syntax error before
"re_node_set_init_copy"
    compat/regex/regex_internal.c:1021: warning: return type defaults to `int'
    compat/regex/regex_internal.c:1045: error: syntax error before
"re_node_set_add_intersect"
    compat/regex/regex_internal.c:1047: warning: return type defaults to `int'
    compat/regex/regex_internal.c:1136: error: syntax error before
"re_node_set_init_union"
    compat/regex/regex_internal.c:1138: warning: return type defaults to `int'
    compat/regex/regex_internal.c:1189: error: syntax error before
"re_node_set_merge"
    compat/regex/regex_internal.c:1190: warning: return type defaults to `int'
    compat/regex/regex_internal.c:1272: error: syntax error before
"re_node_set_insert"
    compat/regex/regex_internal.c:1273: warning: return type defaults to `int'
    compat/regex/regex_internal.c:1329: error: syntax error before
"re_node_set_insert_last"
    compat/regex/regex_internal.c:1330: warning: return type defaults to `int'
    compat/regex/regex_internal.c: In function `re_dfa_add_node':
    compat/regex/regex_internal.c:1406: warning: unused variable `type'
    compat/regex/regex_internal.c: At top level:
    compat/regex/regex_internal.c:1472: error: syntax error before
"re_acquire_state"
    compat/regex/regex_internal.c:1474: warning: return type defaults to `int'
    compat/regex/regex_internal.c: In function `re_acquire_state':
    compat/regex/regex_internal.c:1493: warning: return makes integer
from pointer without a cast
    compat/regex/regex_internal.c:1501: warning: return makes integer
from pointer without a cast
    compat/regex/regex_internal.c: At top level:
    compat/regex/regex_internal.c:1516: error: syntax error before
"re_acquire_state_context"
    compat/regex/regex_internal.c:1518: warning: return type defaults to `int'
    compat/regex/regex_internal.c: In function `re_acquire_state_context':
    compat/regex/regex_internal.c:1537: warning: return makes integer
from pointer without a cast
    compat/regex/regex_internal.c:1544: warning: return makes integer
from pointer without a cast
    compat/regex/regex_internal.c: At top level:
    compat/regex/regex_internal.c:1553: error: syntax error before
"register_state"
    compat/regex/regex_internal.c:1555: warning: return type defaults to `int'
    compat/regex/regex_internal.c:1608: error: syntax error before
"create_ci_newstate"
    compat/regex/regex_internal.c:1610: warning: return type defaults to `int'
    compat/regex/regex_internal.c:1610: error: conflicting types for
'create_ci_newstate'
    compat/regex/regex_internal.c:27: error: previous declaration of
'create_ci_newstate' was here
    compat/regex/regex_internal.c:1610: error: conflicting types for
'create_ci_newstate'
    compat/regex/regex_internal.c:27: error: previous declaration of
'create_ci_newstate' was here
    compat/regex/regex_internal.c: In function `create_ci_newstate':
    compat/regex/regex_internal.c:1650: warning: return makes integer
from pointer without a cast
    compat/regex/regex_internal.c: At top level:
    compat/regex/regex_internal.c:1658: error: syntax error before
"create_cd_newstate"
    compat/regex/regex_internal.c:1660: warning: return type defaults to `int'
    compat/regex/regex_internal.c:1660: error: conflicting types for
'create_cd_newstate'
    compat/regex/regex_internal.c:31: error: previous declaration of
'create_cd_newstate' was here
    compat/regex/regex_internal.c:1660: error: conflicting types for
'create_cd_newstate'
    compat/regex/regex_internal.c:31: error: previous declaration of
'create_cd_newstate' was here
    compat/regex/regex_internal.c: In function `create_cd_newstate':
    compat/regex/regex_internal.c:1726: warning: return makes integer
from pointer without a cast
    In file included from compat/regex/regex.c:74:
    compat/regex/regcomp.c: In function `create_initial_state':
    compat/regex/regcomp.c:1013: warning: assignment makes pointer
from integer without a cast
    compat/regex/regcomp.c:1020: warning: assignment makes pointer
from integer without a cast
    compat/regex/regcomp.c:1022: warning: assignment makes pointer
from integer without a cast
    compat/regex/regcomp.c:1026: warning: assignment makes pointer
from integer without a cast
    In file included from compat/regex/regex.c:75:
    compat/regex/regexec.c: In function `regexec':
    compat/regex/regexec.c:230: warning: unused variable `dfa'
    compat/regex/regexec.c: In function `re_search_stub':
    compat/regex/regexec.c:418: warning: unused variable `dfa'
    compat/regex/regexec.c: At top level:
    compat/regex/regexec.c:629: error: syntax error before "re_search_internal"
    compat/regex/regexec.c:631: warning: return type defaults to `int'
    compat/regex/regexec.c:631: error: conflicting types for
're_search_internal'
    compat/regex/regexec.c:43: error: previous declaration of
're_search_internal' was here
    compat/regex/regexec.c:631: error: conflicting types for
're_search_internal'
    compat/regex/regexec.c:43: error: previous declaration of
're_search_internal' was here
    compat/regex/regexec.c:956: error: syntax error before
"prune_impossible_nodes"
    compat/regex/regexec.c:957: warning: return type defaults to `int'
    compat/regex/regexec.c:957: error: conflicting types for
'prune_impossible_nodes'
    compat/regex/regexec.c:56: error: previous declaration of
'prune_impossible_nodes' was here
    compat/regex/regexec.c:957: error: conflicting types for
'prune_impossible_nodes'
    compat/regex/regexec.c:56: error: previous declaration of
'prune_impossible_nodes' was here
    compat/regex/regexec.c: In function `acquire_init_state_context':
    compat/regex/regexec.c:1074: warning: return makes pointer from
integer without a cast
    compat/regex/regexec.c: At top level:
    compat/regex/regexec.c:1095: error: syntax error before "check_matching"
    compat/regex/regexec.c:1097: warning: return type defaults to `int'
    compat/regex/regexec.c:1097: error: conflicting types for 'check_matching'
    compat/regex/regexec.c:58: error: previous declaration of
'check_matching' was here
    compat/regex/regexec.c:1097: error: conflicting types for 'check_matching'
    compat/regex/regexec.c:58: error: previous declaration of
'check_matching' was here
    compat/regex/regexec.c:1368: error: syntax error before "push_fail_stack"
    compat/regex/regexec.c:1370: warning: return type defaults to `int'
    compat/regex/regexec.c:1370: error: conflicting types for 'push_fail_stack'
    compat/regex/regexec.c:69: error: previous declaration of
'push_fail_stack' was here
    compat/regex/regexec.c:1370: error: conflicting types for 'push_fail_stack'
    compat/regex/regexec.c:69: error: previous declaration of
'push_fail_stack' was here
    compat/regex/regexec.c:1415: error: syntax error before "set_regs"
    compat/regex/regexec.c:1417: warning: return type defaults to `int'
    compat/regex/regexec.c:1417: error: conflicting types for 'set_regs'
    compat/regex/regexec.c:73: error: previous declaration of
'set_regs' was here
    compat/regex/regexec.c:1417: error: conflicting types for 'set_regs'
    compat/regex/regexec.c:73: error: previous declaration of
'set_regs' was here
    compat/regex/regexec.c:1669: error: syntax error before
"build_sifted_states"
    compat/regex/regexec.c:1671: warning: return type defaults to `int'
    compat/regex/regexec.c:1671: error: conflicting types for
'build_sifted_states'
    compat/regex/regexec.c:89: error: previous declaration of
'build_sifted_states' was here
    compat/regex/regexec.c:1671: error: conflicting types for
'build_sifted_states'
    compat/regex/regexec.c:89: error: previous declaration of
'build_sifted_states' was here
    compat/regex/regexec.c: In function `merge_state_array':
    compat/regex/regexec.c:1772: warning: assignment makes pointer
from integer without a cast
    compat/regex/regexec.c: In function `update_cur_sifted_state':
    compat/regex/regexec.c:1815: warning: assignment makes pointer
from integer without a cast
    compat/regex/regexec.c: At top level:
    compat/regex/regexec.c:1831: error: syntax error before
"add_epsilon_src_nodes"
    compat/regex/regexec.c:1833: warning: return type defaults to `int'
    compat/regex/regexec.c:1833: error: conflicting types for
'add_epsilon_src_nodes'
    compat/regex/regexec.c:98: error: previous declaration of
'add_epsilon_src_nodes' was here
    compat/regex/regexec.c:1833: error: conflicting types for
'add_epsilon_src_nodes'
    compat/regex/regexec.c:98: error: previous declaration of
'add_epsilon_src_nodes' was here
    compat/regex/regexec.c: In function `add_epsilon_src_nodes':
    compat/regex/regexec.c:1837: warning: initialization makes pointer
from integer without a cast
    compat/regex/regexec.c: At top level:
    compat/regex/regexec.c:2144: error: syntax error before "sift_states_bkref"
    compat/regex/regexec.c:2146: warning: return type defaults to `int'
    compat/regex/regexec.c:2146: error: conflicting types for
'sift_states_bkref'
    compat/regex/regexec.c:120: error: previous declaration of
'sift_states_bkref' was here
    compat/regex/regexec.c:2146: error: conflicting types for
'sift_states_bkref'
    compat/regex/regexec.c:120: error: previous declaration of
'sift_states_bkref' was here
    compat/regex/regexec.c:2274: error: syntax error before "transit_state"
    compat/regex/regexec.c:2276: warning: return type defaults to `int'
    compat/regex/regexec.c:2276: error: conflicting types for 'transit_state'
    compat/regex/regexec.c:129: error: previous declaration of
'transit_state' was here
    compat/regex/regexec.c:2276: error: conflicting types for 'transit_state'
    compat/regex/regexec.c:129: error: previous declaration of
'transit_state' was here
    compat/regex/regexec.c: In function `transit_state':
    compat/regex/regexec.c:2303: warning: return makes integer from
pointer without a cast
    compat/regex/regexec.c:2314: warning: return makes integer from
pointer without a cast
    compat/regex/regexec.c:2316: warning: return makes integer from
pointer without a cast
    compat/regex/regexec.c: In function `merge_state_with_log':
    compat/regex/regexec.c:2375: warning: assignment makes pointer
from integer without a cast
    compat/regex/regexec.c: In function `transit_state_bkref':
    compat/regex/regexec.c:2648: warning: assignment makes pointer
from integer without a cast
    compat/regex/regexec.c:2665: warning: assignment makes pointer
from integer without a cast
    compat/regex/regexec.c: At top level:
    compat/regex/regexec.c:2699: error: syntax error before "get_subexp"
    compat/regex/regexec.c:2700: warning: return type defaults to `int'
    compat/regex/regexec.c:2700: error: conflicting types for 'get_subexp'
    compat/regex/regexec.c:153: error: previous declaration of
'get_subexp' was here
    compat/regex/regexec.c:2700: error: conflicting types for 'get_subexp'
    compat/regex/regexec.c:153: error: previous declaration of
'get_subexp' was here
    compat/regex/regexec.c:2899: error: syntax error before "check_arrival"
    compat/regex/regexec.c:2901: warning: return type defaults to `int'
    compat/regex/regexec.c:2901: error: conflicting types for 'check_arrival'
    compat/regex/regexec.c:164: error: previous declaration of
'check_arrival' was here
    compat/regex/regexec.c:2901: error: conflicting types for 'check_arrival'
    compat/regex/regexec.c:164: error: previous declaration of
'check_arrival' was here
    compat/regex/regexec.c: In function `check_arrival':
    compat/regex/regexec.c:2974: warning: assignment makes pointer
from integer without a cast
    compat/regex/regexec.c:3025: warning: assignment makes pointer
from integer without a cast
    compat/regex/regexec.c: At top level:
    compat/regex/regexec.c:3060: error: syntax error before
"check_arrival_add_next_nodes"
    compat/regex/regexec.c:3062: warning: return type defaults to `int'
    compat/regex/regexec.c:3062: error: conflicting types for
'check_arrival_add_next_nodes'
    compat/regex/regexec.c:169: error: previous declaration of
'check_arrival_add_next_nodes' was here
    compat/regex/regexec.c:3062: error: conflicting types for
'check_arrival_add_next_nodes'
    compat/regex/regexec.c:169: error: previous declaration of
'check_arrival_add_next_nodes' was here
    compat/regex/regexec.c: In function `check_arrival_add_next_nodes':
    compat/regex/regexec.c:3066: warning: unused variable `err'
    compat/regex/regexec.c: At top level:
    compat/regex/regexec.c:3192: error: syntax error before
"check_arrival_expand_ecl_sub"
    compat/regex/regexec.c:3194: warning: return type defaults to `int'
    compat/regex/regexec.c:3194: error: conflicting types for
'check_arrival_expand_ecl_sub'
    compat/regex/regexec.c:177: error: previous declaration of
'check_arrival_expand_ecl_sub' was here
    compat/regex/regexec.c:3194: error: conflicting types for
'check_arrival_expand_ecl_sub'
    compat/regex/regexec.c:177: error: previous declaration of
'check_arrival_expand_ecl_sub' was here
    compat/regex/regexec.c:3236: error: syntax error before "expand_bkref_cache"
    compat/regex/regexec.c:3238: warning: return type defaults to `int'
    compat/regex/regexec.c:3238: error: conflicting types for
'expand_bkref_cache'
    compat/regex/regexec.c:181: error: previous declaration of
'expand_bkref_cache' was here
    compat/regex/regexec.c:3238: error: conflicting types for
'expand_bkref_cache'
    compat/regex/regexec.c:181: error: previous declaration of
'expand_bkref_cache' was here
    compat/regex/regexec.c: In function `expand_bkref_cache':
    compat/regex/regexec.c:3309: warning: assignment makes pointer
from integer without a cast
    compat/regex/regexec.c: In function `build_trtable':
    compat/regex/regexec.c:3434: warning: assignment makes pointer
from integer without a cast
    compat/regex/regexec.c:3442: warning: assignment makes pointer
from integer without a cast
    compat/regex/regexec.c:3450: warning: assignment makes pointer
from integer without a cast
    compat/regex/regexec.c: At top level:
    compat/regex/regexec.c:4102: error: syntax error before "extend_buffers"
    compat/regex/regexec.c:4103: warning: return type defaults to `int'
    compat/regex/regexec.c:4103: error: conflicting types for 'extend_buffers'
    compat/regex/regexec.c:202: error: previous declaration of
'extend_buffers' was here
    compat/regex/regexec.c:4103: error: conflicting types for 'extend_buffers'
    compat/regex/regexec.c:202: error: previous declaration of
'extend_buffers' was here
    compat/regex/regexec.c:4165: error: syntax error before "match_ctx_init"
    compat/regex/regexec.c:4166: warning: return type defaults to `int'
    compat/regex/regexec.c:4166: error: conflicting types for 'match_ctx_init'
    compat/regex/regexec.c:22: error: previous declaration of
'match_ctx_init' was here
    compat/regex/regexec.c:4166: error: conflicting types for 'match_ctx_init'
    compat/regex/regexec.c:22: error: previous declaration of
'match_ctx_init' was here
    compat/regex/regexec.c:4238: error: syntax error before
"match_ctx_add_entry"
    compat/regex/regexec.c:4240: warning: return type defaults to `int'
    compat/regex/regexec.c:4240: error: conflicting types for
'match_ctx_add_entry'
    compat/regex/regexec.c:27: error: previous declaration of
'match_ctx_add_entry' was here
    compat/regex/regexec.c:4240: error: conflicting types for
'match_ctx_add_entry'
    compat/regex/regexec.c:27: error: previous declaration of
'match_ctx_add_entry' was here
    compat/regex/regexec.c:4310: error: syntax error before
"match_ctx_add_subtop"
    compat/regex/regexec.c:4311: warning: return type defaults to `int'
    compat/regex/regexec.c:4311: error: conflicting types for
'match_ctx_add_subtop'
    compat/regex/regexec.c:31: error: previous declaration of
'match_ctx_add_subtop' was here
    compat/regex/regexec.c:4311: error: conflicting types for
'match_ctx_add_subtop'
    compat/regex/regexec.c:31: error: previous declaration of
'match_ctx_add_subtop' was here
    compat/regex/regex_internal.h:392: warning:
're_string_realloc_buffers' declared `static' but never defined
    compat/regex/regex_internal.c:27: warning: 'create_ci_newstate'
declared `static' but never defined
    compat/regex/regex_internal.c:31: warning: 'create_cd_newstate'
declared `static' but never defined
    compat/regex/regexec.c:22: warning: 'match_ctx_init' declared
`static' but never defined
    compat/regex/regexec.c:27: warning: 'match_ctx_add_entry' declared
`static' but never defined
    compat/regex/regexec.c:31: warning: 'match_ctx_add_subtop'
declared `static' but never defined
    compat/regex/regexec.c:43: warning: 're_search_internal' declared
`static' but never defined
    compat/regex/regexec.c:56: warning: 'prune_impossible_nodes'
declared `static' but never defined
    compat/regex/regexec.c:58: warning: 'check_matching' declared
`static' but never defined
    compat/regex/regexec.c:69: warning: 'push_fail_stack' declared
`static' but never defined
    compat/regex/regexec.c:73: warning: 'set_regs' declared `static'
but never defined
    compat/regex/regexec.c:89: warning: 'build_sifted_states' declared
`static' but never defined
    compat/regex/regexec.c:98: warning: 'add_epsilon_src_nodes'
declared `static' but never defined
    compat/regex/regexec.c:120: warning: 'sift_states_bkref' declared
`static' but never defined
    compat/regex/regexec.c:129: warning: 'transit_state' declared
`static' but never defined
    compat/regex/regexec.c:153: warning: 'get_subexp' declared
`static' but never defined
    compat/regex/regexec.c:164: warning: 'check_arrival' declared
`static' but never defined
    compat/regex/regexec.c:169: warning:
'check_arrival_add_next_nodes' declared `static' but never defined
    compat/regex/regexec.c:177: warning:
'check_arrival_expand_ecl_sub' declared `static' but never defined
    compat/regex/regexec.c:181: warning: 'expand_bkref_cache' declared
`static' but never defined
    compat/regex/regexec.c:202: warning: 'extend_buffers' declared
`static' but never defined
    gmake: *** [compat/regex/regex.o] Error 1
And on FreeBSD:
    In file included from git-compat-util.h:93,
                     from cache.h:4,
                     from thread-utils.c:1:
    compat/regex/regex.h:367: warning: declaration does not declare anything
        CC compat/memmem.o
    In file included from compat/../git-compat-util.h:93,
                     from compat/memmem.c:1:
    compat/regex/regex.h:367: warning: declaration does not declare anything
        CC compat/regex/regex.o
    In file included from compat/regex/regex.c:63:
    compat/regex/regex_internal.h:421:20: error: alloca.h: No such
file or directory
    In file included from compat/regex/regex.c:73:
    compat/regex/regex_internal.c:40: error: expected '=', ',', ';',
'asm' or '__attribute__' before 're_string_allocate'
    compat/regex/regex_internal.c:68: error: expected '=', ',', ';',
'asm' or '__attribute__' before 're_string_construct'
    compat/regex/regex_internal.c:131: error: expected '=', ',', ';',
'asm' or '__attribute__' before 're_string_realloc_buffers'
    compat/regex/regex_internal.c:572: error: expected '=', ',', ';',
'asm' or '__attribute__' before 're_string_reconstruct'
    compat/regex/regex_internal.c:962: error: expected '=', ',', ';',
'asm' or '__attribute__' before 're_node_set_alloc'
    compat/regex/regex_internal.c:974: error: expected '=', ',', ';',
'asm' or '__attribute__' before 're_node_set_init_1'
    compat/regex/regex_internal.c:990: error: expected '=', ',', ';',
'asm' or '__attribute__' before 're_node_set_init_2'
    compat/regex/regex_internal.c:1020: error: expected '=', ',', ';',
'asm' or '__attribute__' before 're_node_set_init_copy'
    compat/regex/regex_internal.c:1045: error: expected '=', ',', ';',
'asm' or '__attribute__' before 're_node_set_add_intersect'
    compat/regex/regex_internal.c:1136: error: expected '=', ',', ';',
'asm' or '__attribute__' before 're_node_set_init_union'
    compat/regex/regex_internal.c:1189: error: expected '=', ',', ';',
'asm' or '__attribute__' before 're_node_set_merge'
    compat/regex/regex_internal.c:1272: error: expected '=', ',', ';',
'asm' or '__attribute__' before 're_node_set_insert'
    compat/regex/regex_internal.c:1329: error: expected '=', ',', ';',
'asm' or '__attribute__' before 're_node_set_insert_last'
    compat/regex/regex_internal.c: In function 're_dfa_add_node':
    compat/regex/regex_internal.c:1406: warning: unused variable 'type'
    compat/regex/regex_internal.c: At top level:
    compat/regex/regex_internal.c:1472: error: expected '=', ',', ';',
'asm' or '__attribute__' before 're_acquire_state'
    compat/regex/regex_internal.c:1516: error: expected '=', ',', ';',
'asm' or '__attribute__' before 're_acquire_state_context'
    compat/regex/regex_internal.c:1553: error: expected '=', ',', ';',
'asm' or '__attribute__' before 'register_state'
    compat/regex/regex_internal.c:1608: error: expected '=', ',', ';',
'asm' or '__attribute__' before 'create_ci_newstate'
    compat/regex/regex_internal.c:1658: error: expected '=', ',', ';',
'asm' or '__attribute__' before 'create_cd_newstate'
    In file included from compat/regex/regex.c:74:
    compat/regex/regcomp.c: In function 're_compile_internal':
    compat/regex/regcomp.c:778: warning: implicit declaration of
function 're_string_construct'
    compat/regex/regcomp.c: In function 'create_initial_state':
    compat/regex/regcomp.c:969: warning: implicit declaration of
function 're_node_set_init_copy'
    compat/regex/regcomp.c:1002: warning: implicit declaration of
function 're_node_set_merge'
    compat/regex/regcomp.c:1013: warning: implicit declaration of
function 're_acquire_state_context'
    compat/regex/regcomp.c:1013: warning: assignment makes pointer
from integer without a cast
    compat/regex/regcomp.c:1020: warning: assignment makes pointer
from integer without a cast
    compat/regex/regcomp.c:1022: warning: assignment makes pointer
from integer without a cast
    compat/regex/regcomp.c:1026: warning: assignment makes pointer
from integer without a cast
    compat/regex/regcomp.c: In function 'link_nfa_nodes':
    compat/regex/regcomp.c:1408: warning: implicit declaration of
function 're_node_set_init_2'
    compat/regex/regcomp.c:1415: warning: implicit declaration of
function 're_node_set_init_1'
    compat/regex/regcomp.c: In function 'duplicate_node_closure':
    compat/regex/regcomp.c:1459: warning: implicit declaration of
function 're_node_set_insert'
    compat/regex/regcomp.c: In function 'calc_inveclosure':
    compat/regex/regcomp.c:1590: warning: implicit declaration of
function 're_node_set_insert_last'
    compat/regex/regcomp.c: In function 'calc_eclosure_iter':
    compat/regex/regcomp.c:1653: warning: implicit declaration of
function 're_node_set_alloc'
    In file included from compat/regex/regex.c:75:
    compat/regex/regexec.c: In function 'regexec':
    compat/regex/regexec.c:230: warning: unused variable 'dfa'
    compat/regex/regexec.c: In function 're_search_stub':
    compat/regex/regexec.c:418: warning: unused variable 'dfa'
    compat/regex/regexec.c: At top level:
    compat/regex/regexec.c:629: error: expected '=', ',', ';', 'asm'
or '__attribute__' before 're_search_internal'
    compat/regex/regexec.c:636: error: expected identifier or '('
before '{' token
    compat/regex/regexec.c:956: error: expected '=', ',', ';', 'asm'
or '__attribute__' before 'prune_impossible_nodes'
    compat/regex/regexec.c:958: error: expected identifier or '('
before '{' token
    compat/regex/regexec.c: In function 'acquire_init_state_context':
    compat/regex/regexec.c:1074: warning: return makes pointer from
integer without a cast
    compat/regex/regexec.c: At top level:
    compat/regex/regexec.c:1095: error: expected '=', ',', ';', 'asm'
or '__attribute__' before 'check_matching'
    compat/regex/regexec.c:1368: error: expected '=', ',', ';', 'asm'
or '__attribute__' before 'push_fail_stack'
    compat/regex/regexec.c:1415: error: expected '=', ',', ';', 'asm'
or '__attribute__' before 'set_regs'
    compat/regex/regexec.c:1669: error: expected '=', ',', ';', 'asm'
or '__attribute__' before 'build_sifted_states'
    compat/regex/regexec.c: In function 'merge_state_array':
    compat/regex/regexec.c:1768: warning: implicit declaration of
function 're_node_set_init_union'
    compat/regex/regexec.c:1772: warning: implicit declaration of
function 're_acquire_state'
    compat/regex/regexec.c:1772: warning: assignment makes pointer
from integer without a cast
    compat/regex/regexec.c: In function 'update_cur_sifted_state':
    compat/regex/regexec.c:1815: warning: assignment makes pointer
from integer without a cast
    compat/regex/regexec.c: At top level:
    compat/regex/regexec.c:1831: error: expected '=', ',', ';', 'asm'
or '__attribute__' before 'add_epsilon_src_nodes'
    compat/regex/regexec.c: In function 'sub_epsilon_src_nodes':
    compat/regex/regexec.c:1884: warning: implicit declaration of
function 're_node_set_add_intersect'
    compat/regex/regexec.c: At top level:
    compat/regex/regexec.c:2144: error: expected '=', ',', ';', 'asm'
or '__attribute__' before 'sift_states_bkref'
    compat/regex/regexec.c:2274: error: expected '=', ',', ';', 'asm'
or '__attribute__' before 'transit_state'
    compat/regex/regexec.c: In function 'merge_state_with_log':
    compat/regex/regexec.c:2375: warning: assignment makes pointer
from integer without a cast
    compat/regex/regexec.c: In function 'transit_state_bkref':
    compat/regex/regexec.c:2648: warning: assignment makes pointer
from integer without a cast
    compat/regex/regexec.c:2665: warning: assignment makes pointer
from integer without a cast
    compat/regex/regexec.c: At top level:
    compat/regex/regexec.c:2699: error: expected '=', ',', ';', 'asm'
or '__attribute__' before 'get_subexp'
    compat/regex/regexec.c:2899: error: expected '=', ',', ';', 'asm'
or '__attribute__' before 'check_arrival'
    compat/regex/regexec.c:3060: error: expected '=', ',', ';', 'asm'
or '__attribute__' before 'check_arrival_add_next_nodes'
    compat/regex/regexec.c:3192: error: expected '=', ',', ';', 'asm'
or '__attribute__' before 'check_arrival_expand_ecl_sub'
    compat/regex/regexec.c:3236: error: expected '=', ',', ';', 'asm'
or '__attribute__' before 'expand_bkref_cache'
    compat/regex/regexec.c: In function 'build_trtable':
    compat/regex/regexec.c:3434: warning: assignment makes pointer
from integer without a cast
    compat/regex/regexec.c:3442: warning: assignment makes pointer
from integer without a cast
    compat/regex/regexec.c:3450: warning: assignment makes pointer
from integer without a cast
    compat/regex/regexec.c: At top level:
    compat/regex/regexec.c:4102: error: expected '=', ',', ';', 'asm'
or '__attribute__' before 'extend_buffers'
    compat/regex/regexec.c:4165: error: expected '=', ',', ';', 'asm'
or '__attribute__' before 'match_ctx_init'
    compat/regex/regexec.c:4238: error: expected '=', ',', ';', 'asm'
or '__attribute__' before 'match_ctx_add_entry'
    compat/regex/regexec.c:4310: error: expected '=', ',', ';', 'asm'
or '__attribute__' before 'match_ctx_add_subtop'
    gmake: *** [compat/regex/regex.o] Error 1
Previous: Ævar Arnfjörð BjarmasonNext: Andreas Schwab
Message 13 of 36 in “grep: Don't pass a TODO test if REG_STARTEND is supported”
  1. grep: Don't pass a TODO test if REG_STARTEND is supportedÆvar Arnfjörð Bjarmason, Jul 8, 2010
  2. Junio C HamanoJul 8, 2010
  3. Ævar Arnfjörð BjarmasonJul 8, 2010
  4. René ScharfeJul 8, 2010
  5. Ævar Arnfjörð BjarmasonJul 15, 2010
  6. Junio C HamanoJul 15, 2010
  7. Ævar Arnfjörð BjarmasonJul 15, 2010
  8. Ævar Arnfjörð BjarmasonJul 16, 2010
  9. Jonathan NiederJul 16, 2010
  10. Ævar Arnfjörð BjarmasonJul 16, 2010
  11. Jonathan NiederJul 16, 2010
  12. Ævar Arnfjörð BjarmasonJul 16, 2010
  13. Ævar Arnfjörð BjarmasonJul 16, 2010
  14. Andreas SchwabJul 16, 2010
  15. Ævar Arnfjörð BjarmasonAug 15, 2010
  16. Paolo BonziniAug 16, 2010
  17. 0/3 Update compat/regexÆvar Arnfjörð Bjarmason, Aug 17, 2010
  18. 2/3 compat/regex: hacks to get the gawk regex engine to compile within gitÆvar Arnfjörð Bjarmason, Aug 17, 2010
  19. Jonathan NiederAug 17, 2010
  20. 3/3 t/t7008-grep-binary.sh: un-TODO a test that needs REG_STARTENDÆvar Arnfjörð Bjarmason, Aug 17, 2010
  21. 0/3 Update compat/regexÆvar Arnfjörð Bjarmason, Aug 17, 2010
  22. Jonathan NiederAug 17, 2010
  23. 0/5 Update compat/regexÆvar Arnfjörð Bjarmason, Aug 17, 2010
  24. Paolo BonziniAug 17, 2010
  25. Junio C HamanoAug 17, 2010
  26. Jonathan NiederAug 17, 2010
  27. Ævar Arnfjörð BjarmasonAug 18, 2010
  28. 2/5 compat/regex: get the gawk regex engine to compile within gitÆvar Arnfjörð Bjarmason, Aug 17, 2010
  29. 3/5 Change regerror() declaration from K&R style to ANSI C (C89)Ævar Arnfjörð Bjarmason, Aug 17, 2010
  30. 4/5 t/t7008-grep-binary.sh: un-TODO a test that needs REG_STARTENDÆvar Arnfjörð Bjarmason, Aug 17, 2010
  31. 5/5 autoconf: don't use platform regex if it lacks REG_STARTENDÆvar Arnfjörð Bjarmason, Aug 17, 2010
  32. 2/3 compat/regex: get the gawk regex engine to compile within gitÆvar Arnfjörð Bjarmason, Aug 17, 2010
  33. 3/3 t/t7008-grep-binary.sh: un-TODO a test that needs REG_STARTENDÆvar Arnfjörð Bjarmason, Aug 17, 2010
  34. Jonathan NiederAug 17, 2010
  35. Ævar Arnfjörð BjarmasonAug 17, 2010
  36. Jonathan NiederAug 17, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.