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: