This is the mail archive of the gcc@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]

unwind-dw2-fde.c change breaks AIX


2001-05-22  Richard Henderson  <rth@redhat.com>

        * unwind-dw2-fde.c (__deregister_frame_info): Stringize use
        of __USER_LABEL_PREFIX__.

is breaking GCC on AIX.  The problem is __USER_LABEL_PREFIX__.  What is
that macro suppose to do?  In config/rs6000/aix.h it is defined a "." .  I
could understand a prefix for a "label" but not for a function name.


	The alias is performing the substitution, but the result is not
valid on AIX.

void *
__deregister_frame_info (void *)
   __attribute__((alias(STR(__USER_LABEL_PREFIX__)
			"__deregister_frame_info_bases")));

is producing

      .set .__deregister_frame_info,..__deregister_frame_info_bases
      .set    __deregister_frame_info,.__deregister_frame_info_bases

but ..__deregister_frame_info_bases does not exist: there are one too many
dots in the prefix -- exactly the value of __USER_LABEL_PREFIX__.

      .set .__deregister_frame_info,.__deregister_frame_info_bases
      .set    __deregister_frame_info,__deregister_frame_info_bases


__USER_LABEL_PREFIX__ was defined that way on Mar 16 by Geoff, but I
cannot find a ChangeLog entry, discussion on gcc-patches, or a reason for
the change.

	Because this change completely breaks the build on AIX, it is
extremely serious.

Thanks, David


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