This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GCC 3.3 - arm-linux GNAT exceptions and tasking patches


Below are three patches with the necessary information for each provided.
This patch is provided under the same license as the affected files, and
no copyright is asserted.

If this is not legally sufficient, please let me know how to make it so.
These patches are supplied in the spirit of GNU and Free Software.

I have tested these patches using HP iPAQ3900 and the ADS BitsyX as
target platforms, running a relatively large Ada application with great
success.

PATCH 1:

      Name:       gnat_arm-linux_except.patch

      Description:
            Modify GNAT exception-handler to support the ARM, or other
            configurations lacking __builtin_eh_return_data_regno().

      Test Cases:
            arm-linux-gnatmake myapp.adb
            * Detailed test cases are not provided because the author is
              not an Ada programmer, and the sources used to test may not
              be redistributed.  Note, though, that any Ada application
              with exception handling should work.

      Change Log:
            2003-07-25  Arthur Naseef     <anaseef@csc.com>

            * raise.c (__gnat_eh_personality):  don't save handler
            switch value to the register, DATA_REG_NO, when none is
            available on the platform.

      Bootstrapping and testing:
            Target:     arm-linux
            Host:       i686-pc-linux-gnu
            Build:      i686-pc-linux-gnu
            Dependencies:
                        binutils-2.14
                        glibc-2.3.2 (arm-linux build with pthread support)
                        linux-2.4.20
            Configure Arguments:
                        --target=arm-linux
                        --host=i686-pc-linux-gnu
                        --srcdir=/path/to/source
                        --enable-shared
                        --enable-thread
                        --enable-languages=c,ada,c++
                        --without-newlib
            Results:
                        Ada application builds and links without error
indicating
                        undefined __builtin_eh_return_data_regno.

PATCH 2:

      Name:       gnat_arm-linux_tasking.patch

      Description:
            Compile Linux tasking code in place of generic versions.

      Test Cases:
            arm-linux-gnatmake myapp.adb
            * Detailed test cases are not provided because the author is
              not an Ada programmer, and the sources used to test may not
              be redistributed.  Note, though, that any Ada application
              with tasking should work.

      Change Log:
            2003-07-25  Arthur Naseef     <anaseef@csc.com>

            * Makefile.in:    use same tasking files as x86-linux for
            arm-linux except those with assembly statements to provide
            working tasking support.

      Bootstrapping and testing:
            Target:     arm-linux
            Host:       i686-pc-linux-gnu
            Build:      i686-pc-linux-gnu
            Dependencies:
                        binutils-2.14
                        glibc-2.3.2 (arm-linux build)
                        linux-2.4.20
            Configure Arguments:
                        --target=arm-linux
                        --host=i686-pc-linux-gnu
                        --srcdir=/path/to/source
                        --enable-shared
                        --enable-thread
                        --enable-languages=c,ada,c++
                        --without-newlib
            Results:
                        Ada application builds runs without the error
message,
                        "Tasking not implemented on this configuration".


PATCH 3:

      Name:       gnat_arm-linux_auxdec.patch

      Description:
            Adjust Aligned_Word'Alignment to 4 instead of 2 so that the
            GNAT compiler will build.

      Test Cases:
            arm-linux-gnatmake myapp.adb
            * Detailed test cases are not provided because the author is
              not an Ada programmer, and the sources used to test may not
              be redistributed.  Note, though, that any Ada application
              with tasking should work.

      Change Log:
            2003-07-25  Arthur Naseef     <anaseef@csc.com>

            * s-auxdec.ads (Aligned_Word'Alignment):  change alignment
            to 4 from 2 so it will build on arm-linux.

      Bootstrapping and testing:
            Target:     arm-linux
            Host:       i686-pc-linux-gnu
            Build:      i686-pc-linux-gnu
            Dependencies:
                        binutils-2.14
                        glibc-2.3.2 (arm-linux build)
                        linux-2.4.20
            Configure Arguments:
                        --target=arm-linux
                        --host=i686-pc-linux-gnu
                        --srcdir=/path/to/source
                        --enable-shared
                        --enable-thread
                        --enable-languages=c,ada,c++
                        --without-newlib
            Results:
                        GNAT compiler builds.


Please let me know of any problems or frustrations with this posting; this
is the first one I have made to this list, and I am using Lotus Notes (with
which I am unfamiliar).

Cheers!

-art


(See attached file: gnat_arm-linux_except.patch)(See attached file:
gnat_arm-linux_tasking.patch)(See attached file:
gnat_arm-linux_auxdec.patch)

Attachment: gnat_arm-linux_except.patch
Description: Binary data

Attachment: gnat_arm-linux_tasking.patch
Description: Binary data

Attachment: gnat_arm-linux_auxdec.patch
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]