Re: Porting GCC

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



For some reason, configure/make assumes that the section of regex.c in libiberty that uses alloca needs to be used on Nonstop.

Not sure if this inbox accepts attachments, but I've attached the compiler listing where the errors occur. I've tried to bypass this error by setting REGEX_MALLOC in CFLAGS & CPPFLAGS during configure but I've failed as the error still occurs, not sure if there's a better way to do this?

________________________________
From: Jonathan Wakely <jwakely.gcc@xxxxxxxxx>
Sent: Monday, September 08, 2025 22:16
To: Shiva Subramanian <Shiva.Subramanian@xxxxxxxxxx>
Cc: Segher Boessenkool <segher@xxxxxxxxxxxxxxxxxxx>; Florian Weimer <fweimer@xxxxxxxxxx>; andrew@xxxxxxxxxxxxxxx <andrew@xxxxxxxxxxxxxxx>; Shiva Subramanian via Gcc-help <gcc-help@xxxxxxxxxxx>
Subject: Re: Porting GCC

On Mon, 8 Sept 2025 at 16:56, Shiva Subramanian
<Shiva.Subramanian@xxxxxxxxxx> wrote:
>
> Thanks to everyone for their inputs. The efforts in the past were by colleagues who are working with me so hopefully our combined knowledge will push us further.
>
> I took your advice and created a wrapper around the compiler to drop -fPIC for now. Still in stage 1, trying to compile libiberty - it seems to use alloc whereas HPE's advice to us is to use newer functions like malloc - will libiberty not compile without alloc or is there a way to bypass it so it uses the newer functions?

I'm not sure what you are seeing, but it looks to me like libiberty uses malloc.
if [ x"-fPIC" != x ]; then \
  nscc -Wstd=c17 -c -DHAVE_CONFIG_H -g  -I. -I../../libiberty/../include   -D_GNU_SOURCE  -fPIC ../../libiberty/regex.c -o pic/regex.o; \
else true; fi
                          boolean is_alnum = STREQ (str, "alnum");
                                             ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 3259: warning(1506):
          implicit conversion from "int" to "char":  rounding, sign extension,
          or loss of accuracy may result

                          boolean is_alpha = STREQ (str, "alpha");
                                             ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 3260: warning(1506):
          implicit conversion from "int" to "char":  rounding, sign extension,
          or loss of accuracy may result

                          boolean is_blank = STREQ (str, "blank");
                                             ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 3261: warning(1506):
          implicit conversion from "int" to "char":  rounding, sign extension,
          or loss of accuracy may result

                          boolean is_cntrl = STREQ (str, "cntrl");
                                             ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 3262: warning(1506):
          implicit conversion from "int" to "char":  rounding, sign extension,
          or loss of accuracy may result

                          boolean is_digit = STREQ (str, "digit");
                                             ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 3263: warning(1506):
          implicit conversion from "int" to "char":  rounding, sign extension,
          or loss of accuracy may result

                          boolean is_graph = STREQ (str, "graph");
                                             ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 3264: warning(1506):
          implicit conversion from "int" to "char":  rounding, sign extension,
          or loss of accuracy may result

                          boolean is_lower = STREQ (str, "lower");
                                             ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 3265: warning(1506):
          implicit conversion from "int" to "char":  rounding, sign extension,
          or loss of accuracy may result

                          boolean is_print = STREQ (str, "print");
                                             ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 3266: warning(1506):
          implicit conversion from "int" to "char":  rounding, sign extension,
          or loss of accuracy may result

                          boolean is_punct = STREQ (str, "punct");
                                             ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 3267: warning(1506):
          implicit conversion from "int" to "char":  rounding, sign extension,
          or loss of accuracy may result

                          boolean is_space = STREQ (str, "space");
                                             ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 3268: warning(1506):
          implicit conversion from "int" to "char":  rounding, sign extension,
          or loss of accuracy may result

                          boolean is_upper = STREQ (str, "upper");
                                             ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 3269: warning(1506):
          implicit conversion from "int" to "char":  rounding, sign extension,
          or loss of accuracy may result

                          boolean is_xdigit = STREQ (str, "xdigit");
                                              ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 3270: warning(1506):
          implicit conversion from "int" to "char":  rounding, sign extension,
          or loss of accuracy may result

                      *inner_group_loc = regnum - this_group_regnum;
                                         ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 3770: warning(1506):
          implicit conversion from "unsigned int" to "unsigned char": 
          rounding, sign extension, or loss of accuracy may result

    STORE_NUMBER (loc + 1, arg);
    ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 4238: warning(1506):
          implicit conversion from "int" to "unsigned char":  rounding, sign
          extension, or loss of accuracy may result

    STORE_NUMBER (loc + 1, arg);
    ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 4238: warning(1506):
          implicit conversion from "int" to "unsigned char":  rounding, sign
          extension, or loss of accuracy may result

    STORE_NUMBER (loc + 1, arg1);
    ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 4249: warning(1506):
          implicit conversion from "int" to "unsigned char":  rounding, sign
          extension, or loss of accuracy may result

    STORE_NUMBER (loc + 1, arg1);
    ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 4249: warning(1506):
          implicit conversion from "int" to "unsigned char":  rounding, sign
          extension, or loss of accuracy may result

    STORE_NUMBER (loc + 1 + OFFSET_ADDRESS_SIZE, arg2);
    ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 4250: warning(1506):
          implicit conversion from "int" to "unsigned char":  rounding, sign
          extension, or loss of accuracy may result

    STORE_NUMBER (loc + 1 + OFFSET_ADDRESS_SIZE, arg2);
    ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 4250: warning(1506):
          implicit conversion from "int" to "unsigned char":  rounding, sign
          extension, or loss of accuracy may result

    boolean prev_prev_backslash = prev > pattern && prev[-1] == '\\';
                                  ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 4297: warning(1506):
          implicit conversion from "int" to "char":  rounding, sign extension,
          or loss of accuracy may result

         (*prev == '(' && (syntax & RE_NO_BK_PARENS || prev_prev_backslash))
         ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 4301: warning(1506):
          implicit conversion from "int" to "char":  rounding, sign extension,
          or loss of accuracy may result

         (syntax & RE_NO_BK_PARENS ? *next == ')'
         ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 4320: warning(1506):
          implicit conversion from "int" to "char":  rounding, sign extension,
          or loss of accuracy may result

    INIT_FAIL_STACK ();
    ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 4587: error(114):
          identifier "alloca" is undefined

              fastmap['\n'] = fastmap_newline;
                              ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 4698: warning(1506):
          implicit conversion from "int" to "char":  rounding, sign extension,
          or loss of accuracy may result

                if (!PUSH_PATTERN_OP (p + j, fail_stack))
                     ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 4796: error(114):
          identifier "alloca" is undefined

    INIT_FAIL_STACK ();
    ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 5689: error(114):
          identifier "alloca" is undefined

        regstart = REGEX_TALLOC (num_regs, const CHAR_T *);
                   ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 5699: error(114):
          identifier "alloca" is undefined

                same_str_p = (FIRST_STRING_P (match_end)
                             ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 5924: warning(1506):
          implicit conversion from "int" to "char":  rounding, sign extension,
          or loss of accuracy may result

                best_match_p = d > match_end;
                               ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 5930: warning(1506):
          implicit conversion from "int" to "char":  rounding, sign extension,
          or loss of accuracy may result

                best_match_p = !MATCHING_IN_FIRST_STRING;
                               ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 5932: warning(1506):
          implicit conversion from "int" to "char":  rounding, sign extension,
          or loss of accuracy may result

                for (mcnt = num_regs; (unsigned) mcnt < regs->num_regs; mcnt++)
                            ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 6065: warning(1506):
          implicit conversion from "unsigned int" to "int":  rounding, sign
          extension, or loss of accuracy may result

            boolean negate = (re_opcode_t) *(p - 1) == charset_not;
                             ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 6186: warning(1506):
          implicit conversion from "int" to "char":  rounding, sign extension,
          or loss of accuracy may result

              negate = !negate;
                       ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 6564: warning(1506):
          implicit conversion from "int" to "char":  rounding, sign extension,
          or loss of accuracy may result

                    PUSH_FAILURE_POINT (p1 + mcnt, d, -2);
                    ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 6757: error(114):
          identifier "alloca" is undefined

                    PUSH_FAILURE_POINT (p1 + mcnt, d, -2);
                    ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 6757: warning(1506):
          implicit conversion from "unsigned long" to "int":  rounding, sign
          extension, or loss of accuracy may result

                    PUSH_FAILURE_POINT (p1 + mcnt, d, -2);
                    ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 6757: warning(1506):
          implicit conversion from "unsigned long" to "int":  rounding, sign
          extension, or loss of accuracy may result

            PUSH_FAILURE_POINT (p + mcnt, NULL, -2);
            ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 6911: error(114):
          identifier "alloca" is undefined

            PUSH_FAILURE_POINT (p + mcnt, NULL, -2);
            ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 6911: warning(1506):
          implicit conversion from "unsigned long" to "int":  rounding, sign
          extension, or loss of accuracy may result

            PUSH_FAILURE_POINT (p + mcnt, NULL, -2);
            ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 6911: warning(1506):
          implicit conversion from "unsigned long" to "int":  rounding, sign
          extension, or loss of accuracy may result

            PUSH_FAILURE_POINT (p + mcnt, d, -2);
            ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 6968: error(114):
          identifier "alloca" is undefined

            PUSH_FAILURE_POINT (p + mcnt, d, -2);
            ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 6968: warning(1506):
          implicit conversion from "unsigned long" to "int":  rounding, sign
          extension, or loss of accuracy may result

            PUSH_FAILURE_POINT (p + mcnt, d, -2);
            ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 6968: warning(1506):
          implicit conversion from "unsigned long" to "int":  rounding, sign
          extension, or loss of accuracy may result

              UCHAR_T *pdummy ATTRIBUTE_UNUSED = NULL;
                       ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 7150: warning(770):
          variable "pdummy" was set but never used

              const CHAR_T *sdummy ATTRIBUTE_UNUSED = NULL;
                            ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 7151: warning(770):
          variable "sdummy" was set but never used

            PUSH_FAILURE_POINT (NULL, NULL, -2);
            ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 7197: error(114):
          identifier "alloca" is undefined

            PUSH_FAILURE_POINT (NULL, NULL, -2);
            ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 7197: warning(1506):
          implicit conversion from "unsigned long" to "int":  rounding, sign
          extension, or loss of accuracy may result

            PUSH_FAILURE_POINT (NULL, NULL, -2);
            ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 7197: warning(1506):
          implicit conversion from "unsigned long" to "int":  rounding, sign
          extension, or loss of accuracy may result

            PUSH_FAILURE_POINT (NULL, NULL, -2);
            ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 7210: error(114):
          identifier "alloca" is undefined

            PUSH_FAILURE_POINT (NULL, NULL, -2);
            ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 7210: warning(1506):
          implicit conversion from "unsigned long" to "int":  rounding, sign
          extension, or loss of accuracy may result

            PUSH_FAILURE_POINT (NULL, NULL, -2);
            ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 7210: warning(1506):
          implicit conversion from "unsigned long" to "int":  rounding, sign
          extension, or loss of accuracy may result

                 STORE_NUMBER_AND_INCR (p, mcnt);
                 ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 7225: warning(1506):
          implicit conversion from "int" to "unsigned char":  rounding, sign
          extension, or loss of accuracy may result

                 STORE_NUMBER_AND_INCR (p, mcnt);
                 ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 7225: warning(1506):
          implicit conversion from "int" to "unsigned char":  rounding, sign
          extension, or loss of accuracy may result

                 STORE_NUMBER (p + OFFSET_ADDRESS_SIZE, mcnt);
                 ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 7262: warning(1506):
          implicit conversion from "int" to "unsigned char":  rounding, sign
          extension, or loss of accuracy may result

                 STORE_NUMBER (p + OFFSET_ADDRESS_SIZE, mcnt);
                 ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 7262: warning(1506):
          implicit conversion from "int" to "unsigned char":  rounding, sign
          extension, or loss of accuracy may result

            STORE_NUMBER (p1, mcnt);
            ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 7290: warning(1506):
          implicit conversion from "int" to "unsigned char":  rounding, sign
          extension, or loss of accuracy may result

            STORE_NUMBER (p1, mcnt);
            ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 7290: warning(1506):
          implicit conversion from "int" to "unsigned char":  rounding, sign
          extension, or loss of accuracy may result

    for (this_element = compile_stack.avail - 1;
                        ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 4337: warning(1506):
          implicit conversion from "unsigned int" to "int":  rounding, sign
          extension, or loss of accuracy may result

    const int len = strlen (s);
                    ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 7874: warning(1506):
          implicit conversion from "unsigned int" to "int":  rounding, sign
          extension, or loss of accuracy may result

          preg->translate[i] = ISUPPER (i) ? TOLOWER (i) : i;
                               ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 7948: warning(1506):
          implicit conversion from "int" to "char":  rounding, sign extension,
          or loss of accuracy may result

    int len = strlen (string);
              ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 8020: warning(1506):
          implicit conversion from "unsigned int" to "int":  rounding, sign
          extension, or loss of accuracy may result

    boolean want_reg_info = !preg->no_sub && nmatch > 0;
                            ^
"/home/shiva/gcc/build/libiberty/../../libiberty/regex.c", line 8021: warning(1506):
          implicit conversion from "int" to "char":  rounding, sign extension,
          or loss of accuracy may result

9 errors detected in the compilation of "../../libiberty/regex.c".
nscc: /usr/cmplr/ccomfe exited, returning 2.
Makefile:1241: recipe for target 'regex.o' failed
make[3]: *** [regex.o] Error 1
make[3]: Leaving directory '/home/shiva/gcc/build/libiberty'
Makefile:14374: recipe for target 'all-stage1-libiberty' failed
make[2]: *** [all-stage1-libiberty] Error 2
make[2]: Leaving directory '/home/shiva/gcc/build'
Makefile:25592: recipe for target 'stage1-bubble' failed
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory '/home/shiva/gcc/build'
Makefile:1105: recipe for target 'all' failed
make: *** [all] Error 2
/home/shiva/gcc/build: 

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux