Modula-2: merge followup (brief update on the progress of the new linking implementation)

Rainer Orth ro@CeBiTec.Uni-Bielefeld.DE
Tue Jul 26 07:45:34 GMT 2022


Hi Gaius,

> Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> writes:
>
>>> I think this just leaves:
>>>
>>>> * While this lets the build finish on all of i386-pc-solaris2.11,
>>>>   sparcv9-sun-solaris2.11, and x86_64-pc-linux-gnu, I get thousands of
>>>>   testsuite failures, all of the same kind:
>>>>
>>>> Undefined                       first referenced
>>>>  symbol                             in file
>>>> RTco_signal                         /var/gcc/modula-2/11.4-gcc-modula-2/i386-pc-solaris2.11/./libgm2/libm2pim/.libs/libm2pim.so
>>>> RTco_select                         /var/gcc/modula-2/11.4-gcc-modula-2/i386-pc-solaris2.11/./libgm2/libm2pim/.libs/libm2pim.so
>>>> RTco_initSemaphore                  /var/gcc/modula-2/11.4-gcc-modula-2/i386-pc-solaris2.11/./libgm2/libm2pim/.libs/libm2pim.so
>>>> RTco_wait                           /var/gcc/modula-2/11.4-gcc-modula-2/i386-pc-solaris2.11/./libgm2/libm2pim/.libs/libm2pim.so
>>>> ld: fatal: symbol referencing errors
>>>> collect2: error: ld returned 1 exit status
>>>> compiler exited with status 1
>>>> FAIL: gm2/exceptions/run/pass/libexcept.mod compilation,  -g
>>>>
>>>>   I haven't yet tried to fix those.
>>>
>>> which I'll try and reproduce,
>>
>> Excellent.  I've also seen this one on Linux/x86_64, so this isn't a
>> Solaris-specific issue.
>
> Hi Rainer,
>
> I think these are now fixed

indeed, thanks.

However, there are still a couple of issues with the branch:

* There's an unresolved merge conflict in toplevel Makefile.in.

* Bootstrap on i386-pc-solaris2.11 initially fails with

/vol/gcc/src/hg/master/modula-2/gcc/gcc.cc: In function 'void print_option(const char*, unsigned int, cl_decoded_option*)':
/vol/gcc/src/hg/master/modula-2/gcc/gcc.cc:4805:46: error: format '%ld' expects argument of type 'long int', but argument 2 has type 'std::size_t' {aka 'unsigned int'} [-Werror=format=]
 4805 |   printf (" canonical_option_num_elements [%ld]\n",
      |                                            ~~^
      |                                              |
      |                                              long int
      |                                            %d
 4806 |           in_decoded_options[i].canonical_option_num_elements);
      |           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                 |
      |                                 std::size_t {aka unsigned int}

  Fixed by the attached patch.

* The libgm2 build fails with

make[5]: *** No rule to make target 'KeyBoardLEDs.c', needed by 'KeyBoardLEDs.lo'.  Stop.

  While libgm2/libm2cor/Makefile.am had been updated for the rename, the
  corresponding Makefile.in hasn't.  Besides, the Makefile.in's are
  still generated with a distribution-patched automake (which supports
  runstatedir).  This makes it unnecessarily hard to check if
  everything's ok if you have to update Makefile.am's and run automake
  locally afterwards.

That said, results are pretty good:

* i386-pc-solaris2.11:

                === gm2 Summary for unix ===

# of expected passes            11650
# of unexpected failures        14

                === gm2 Summary for unix/-m64 ===

# of expected passes            11647
# of unexpected failures        17

                === gm2 Summary ===

# of expected passes            23297
# of unexpected failures        31

* amd64-pc-solaris2.11:

                === gm2 Summary for unix ===

# of expected passes            11658
# of unexpected failures        6

                === gm2 Summary for unix/-m32 ===

# of expected passes            11650
# of unexpected failures        14

                === gm2 Summary ===

# of expected passes            23308
# of unexpected failures        20

* sparcv9-sun-solaris2.11:

                === gm2 Summary for unix ===

# of expected passes            11653
# of unexpected failures        9
# of unresolved testcases       1

                === gm2 Summary for unix/-m32 ===

# of expected passes            7390
# of unexpected failures        2131
# of unresolved testcases       2029

                === gm2 Summary ===

# of expected passes            19043
# of unexpected failures        2140
# of unresolved testcases       2030

  The 32-bit failures are mostly (all?) of the same type.  I've filed PR
  modula2/106443 for that

* sparc-sun-solaris2.11:

  Still fails with a cc1gm2 SEGV in stage2: PR modula2/101392.

And just for completeness' sake:

* x86_64-pc-linux-gnu:

                === gm2 Summary for unix ===

# of expected passes            11662
# of unexpected failures        2

                === gm2 Summary for unix/-m32 ===

# of expected passes            11657
# of unexpected failures        7

                === gm2 Summary ===

# of expected passes            23319
# of unexpected failures        9

* i686-pc-linux-gnu:

                === gm2 Summary for unix ===

# of expected passes            11663
# of unexpected failures        1

                === gm2 Summary for unix/-m64 ===

# of expected passes            11657
# of unexpected failures        7

                === gm2 Summary ===

# of expected passes            23320
# of unexpected failures        8

	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University


-------------- next part --------------
A non-text attachment was scrubbed...
Name: gm2.patch
Type: text/x-patch
Size: 16614 bytes
Desc: not available
URL: <https://gcc.gnu.org/pipermail/gcc-patches/attachments/20220726/e0950af6/attachment-0001.bin>


More information about the Gcc-patches mailing list