Port-m68k archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

DEFAULT_PCC_STRUCT_RETURN on NetBSD vs Linux



Hi,

while looking into building GCC with 4 bytes alignment by default on
m68k, I ran into the following definition in gcc/config/m68k/linux.h:

/* For m68k SVR4, structures are returned using the reentrant                                                                                                              
   technique.  */
#undef PCC_STATIC_STRUCT_RETURN
#define DEFAULT_PCC_STRUCT_RETURN 0

For NetBSD (gcc/config/m68k/netbsd-elf.h), we have:

/* The svr4 ABI for the m68k says that records and unions are returned                                                                                                     
   in memory.  */

#undef DEFAULT_PCC_STRUCT_RETURN 
#define DEFAULT_PCC_STRUCT_RETURN 1

Two questions:

Shouldn't the #undef in linux.h undefine DEFAULT_PCC_STRUCT_RETURN and not
PCC_STATIC_STRUCT_RETURN? And, secondly, shouldn't the comment in linux.h
be corrected since apparently linux.h and netbsd-elf.h disagree on what
the SVR4 ABI specifies how structs and unions are returned?

In particular, it seems that DEFAULT_PCC_STRUCT_RETURN is always 0 on Linux
and always 1 on NetBSD according to a brief "git grep DEFAULT_PCC_STRUCT_RETURN".

Thanks,
Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer
`. `'   Physicist
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913


Home | Main Index | Thread Index | Old Index