Re: [PATCH] Fix call functions command bug in 64-bit programs for AIX

Aditya Kamath1 via Gdb-patches
2022-11-24T17:56:46Z

Hi Ulrich,

Thank you for pushing the patch. Sure..

Hi Tom,

>> warning: (Internal error: pc 0x10000290 in read in psymtab, but not in symtab.)

>This normally indicates a serious bug. Also, I guess you must be using
>stabs?

>> BFD: /usr/lib/libc.a(/usr/lib/libc.a(shr_64.o)): wrong auxtype 0xff for storage class 0x2
>> BFD: /usr/lib/libc.a(/usr/lib/libc.a(shr_64.o)): wrong auxtype 0xff for storage class 0x6b

>These seem concerning.

I will check why this is happening. I will plan for it in our future patches for AIX and keep you in cc in that mailing thread once I find a solution. By the way I use DWARF for all the tests I do.

>I didn't look at this too deeply, but it's worth noting that code
>handling the marshalling of integers should also handle
>TYPE_CODE_FIXED_POINT as well, as those are integers with a funny
>name. There should be some Ada tests for this.

>If you can't test Ada, I guess don't worry about it. I'm not 100% sure
>the way you've written this will work for a fixed-point number.

So, I had been searching for TYPE_CODE_FIXED_POINT. Unfortunately, when I tried running the Ada test cases for the same, the output was that the test case is unsupported.

One of the things about fixed point numbers is I have not found a way I can write the same in C or C++ in AIX. For example, I found how IBM Z folks do it which is in the link [ https://www.ibm.com/docs/en/zos/2.4.0?topic=specifiers-fixed-point-decimal-types-c-only#dcon ]. While few of other platforms that do not have float type use this [ https://www.ibm.com/docs/en/rhapsody/8.4.0?topic=elements-using-fixed-point-variables ].

Kindly let me know if any of you know how we can use it in C/C++ in AIX. I would like to learn and then check how we can handle them in GDB. So far in C or C++ I have not been successful in finding how to use fixed point integers in AIX.

Have a nice day ahead.

Thanks and regards,
Aditya.

Using fixed-point variables<https://www.ibm.com/docs/en/rhapsody/8.4.0?topic=elements-using-fixed-point-variables>
You can use IBM Rational Rhapsody Developer for C to provide an option to use fixed-point variables for target systems that do not include floating-point capabilities.
www.ibm.com

Fixed point decimal types (C only) - IBM<https://www.ibm.com/docs/en/zos/2.4.0?topic=specifiers-fixed-point-decimal-types-c-only#dcon>
Fixed point decimal types are classified as arithmetic types. To declare fixed point decimal variables and initialize them with fixed point decimal constants, you use the type specifier decimal.For this type specifier, decimal is a macro that is defined in the decimal.h header file. Remember to include decimal.h if you use fixed point decimals in your program.
www.ibm.com

________________________________
From: Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
Sent: 17 November 2022 18:24
To: gdb-patches@sourceware.org <gdb-patches@sourceware.org>; Aditya Kamath1 <Aditya.Kamath1@ibm.com>; simon.marchi@efficios.com <simon.marchi@efficios.com>
Cc: Sangamesh Mallayya <sangamesh.swamy@in.ibm.com>; tom@tromey.com <tom@tromey.com>; Sanket Rathi <sanrathi@in.ibm.com>
Subject: Re: [PATCH] Fix call functions command bug in 64-bit programs for AIX

Aditya Kamath1 <Aditya.Kamath1@ibm.com> wrote:

>You were right. Thank you for pointing out. I have attached
>the outputs below. It works fine now.

This version is OK, I've checked it in now.

Tom does make very valid points in his reply however,
so it would be good if you can still follow up on that.

Bye,
Ulrich