On Mon, Jul 21, 2025 at 08:02:12PM +0530, swamy sangamesh wrote:
> Hi All,
> 
> I see a build failure on AIX.
> 
> g++ -std=c++14 -c   -g -DIN_GCC    -fno-exceptions -fno-rtti
> -fasynchronous-unwind-tables -W -Wall -Wno-error=narrowing -Wwrite-strings
> -Wcast-qual -Wno-format -Wmissing-format-attribute
> -Wconditionally-supported -Woverloaded-virtual -pedantic -Wno-long-long
> -Wno-variadic-macros -Wno-overlength-strings  -DHAVE_CONFIG_H
>  -DGENERATOR_FILE -I. -Ibuild -I/opt/freeware/src/packages/BUILD/gcc/gcc
> -I/opt/freeware/src/packages/BUILD/gcc/gcc/build
> -I/opt/freeware/src/packages/BUILD/gcc/gcc/../include
>  -I/opt/freeware/src/packages/BUILD/gcc/gcc/../libcpp/include
> -I/home/sangam/install/include \
>         -o build/gencondmd.o build/gencondmd.cc
> In file included from ./tm_p.h:5,
>                  from build/gencondmd.cc:29:
> ./tm-preds.h: In function 'size_t insn_constraint_len(char, const char*)':
> ./tm-preds.h:350:30: error: 'rawmemchr' was not declared in this scope; did
> you mean 'wmemchr'?
>   350 |       return ((const char *) rawmemchr (str + 1, '}') - str) + 1;
>       |                              ^~~~~~~~~
>       |                              wmemchr
> g++ -std=c++14   -g -DIN_GCC    -fno-exceptions -fno-rtti
> -fasynchronous-unwind-tables -W -Wall -Wno-error=narrowing -Wwrite-strings
> -Wcast-qual -Wno-format -Wmissing-format-attribute
> -Wconditionally-supported -Woverloaded-virtual -pedantic -Wno-long-long
> -Wno-variadic-macros -Wno-overlength-strings  -DHAVE_CONFIG_H
>  -DGENERATOR_FILE -static-libstdc++ -static-libgcc -Wl,-bbigtoc
> -Wl,-bmaxdata:0x40000000 -o build/genmatch \
>     build/genmatch.o ../build-powerpc-ibm-aix7.3.1.0/libcpp/libcpp.a
> build/errors.o build/vec.o build/hash-table.o build/sort.o
> ../build-powerpc-ibm-aix7.3.1.0/libiberty/libiberty.a
> make[3]: *** [Makefile:3200: build/gencondmd.o] Error 1
> 

The generated file tm-preds.h contains now:

static inline size_t
insn_constraint_len (char fc, const char *str)
{
  ...

  if (str[0] == '{')
      return ((const char *) rawmemchr (str + 1, '}') - str) + 1;
  return 1;
}

For some reason on all targets I tested, string.h is included.  I will
have a look and see whether string.h may be included easily here, too.
If the dependency to string.h is not wanted, I could also come up with a
simple loop.

Sorry for the inconvenience.

Cheers,
Stefan

> Thanks,
> Sangamesh
> 
> On Mon, Jul 21, 2025 at 4:46 PM Stefan Schulze Frielinghaus <
> stefa...@linux.ibm.com> wrote:
> 
> > On Sat, Jul 19, 2025 at 08:26:22AM -0600, Jeff Law wrote:
> > >
> > >
> > > On 7/17/25 2:24 AM, Stefan Schulze Frielinghaus wrote:
> > > > On Wed, Jul 09, 2025 at 03:48:43PM +0200, Stefan Schulze Frielinghaus
> > wrote:
> > > > > This is a follow-up to
> > > > > https://gcc.gnu.org/pipermail/gcc-patches/2025-May/684181.html
> > > > >
> > > > > I added the last missing pieces namely changelogs, and bootstrapped
> > and
> > > > > regtested on
> > > > >
> > > > > aarch64-unknown-linux-gnu
> > > > > powerpc64le-unknown-linux-gnu
> > > > > s390x-ibm-linux-gnu
> > > > > x86_64-pc-linux-gnu
> > > > >
> > > > > Via cross compilers I verified the new tests for
> > > > >
> > > > > arm-linux-gnueabi
> > > > > i686-linux-gnueabi
> > > > > powerpc-linux-gnu
> > > > > riscv32-linux-gnu
> > > > > riscv64-linux-gnu
> > > > >
> > > > > Despite that I removed overloads for
> > parse_{input,output}_constraint()
> > > > > by passing a null pointer explicitly.  Furthermore, in case of
> > register
> > > > > pairs, if two constraints of operands overlap, error out and report
> > the
> > > > > overlapped register.  For example, on aarch64
> > > > >
> > > > > svuint32x2_t x, y;
> > > > > asm ("" : "={z5}" (x), "={z6}" (y));
> > > > >
> > > > > previously I used the register as is of the first constraint in the
> > > > > error message which is imprecise/misleading.  Now, I error out
> > reporting
> > > > > multiple outputs to register z6/v6, i.e., the actual overlapped one,
> > and
> > > > > not z5/v5 as previously.
> > > > >
> > > > > Although I found a lot of corner cases during development via
> > > > > -fdemote-register-asm I removed it from this patch series.  I
> > > > > compiled and used the Linux kernel and glibc successfully with it for
> > > > > s390x.  For x86_64, the Linux kernel compiles fine, too, except of
> > one
> > > > > small manual change.  For powerpc64le, I ran into an odd case
> > compiling
> > > > > glibc which I would like to understand in more detail.  Since
> > register
> > > > > asm is not as strict as hard register constraints, for a full fledged
> > > > > implementation I need to consider more corner cases.  Therefore, I
> > would
> > > > > like to spend some more time on this before I push this new feature.
> > > > >
> > > > > In total no huge changes.  Still ok for mainline?
> > > >
> > > > Although the v4 patches have been acked I'm not sure whether this falls
> > > > under the "is obvious" rule since I changed a little bit.  If I get
> > your
> > > > final Ok I will push these patches and will not bother you further ;-)
> > > > I already have an idea for the fourth patch (-fdemote-register-asm)
> > > > which I exclude for the moment and will come back to in the future.
> > > It's often left to the submitter to decide if minor adjustments require
> > > another review round.   There's no firm policy.
> > >
> > > A fairly easy line to draw is are you just adjusting to ongoing trunk
> > > changes?  If so, that's almost always not a problem and wouldn't suggest
> > a
> > > re-review.
> > >
> > > If you made substantial changes to the implementation, then a re-review
> > is
> > > probably advisable.
> > >
> > > For the stuff in the middle?  Your best judgment as an engineer ;-)
> > > Certainly if you post for a re-review, give us some idea of what changed
> > so
> > > we know where to focus.
> >
> > Thanks for clarification.  Since the late time changes were rather a
> > nit/fixup, I committed the v5 patches as
> >
> > r16-2376-g9791950017c90c
> > r16-2375-gcbf17db978c663
> > r16-2374-ga51c146ebce41b
> >
> > Cheers,
> > Stefan
> >
> 
> 
> -- 
> Thanks & Regards,
> Sangamesh

Reply via email to