nuttx-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From GitBox <...@apache.org>
Subject [GitHub] [incubator-nuttx] patacongo opened a new pull request #766: Remove CONFIG_CAN_PASS_STRUCT
Date Sat, 11 Apr 2020 17:22:51 GMT
patacongo opened a new pull request #766: Remove CONFIG_CAN_PASS_STRUCT
URL: https://github.com/apache/incubator-nuttx/pull/766
 
 
   This commit resolves issue  #620 
   
   Remove CONFIG_CAN_PASS_STRUCTS #620
   
   The configuration option CONFIG_CAN_PASS_STRUCTS was added many years ago to support an
old version of the SDCC compiler. That compiler is currently used only with the Z80 and Z180
targets. The limitation of that old compiler was that it could not pass structures or unions
as either inputs or outputs. For example:
   
       #ifdef CONFIG_CAN_PASS_STRUCTS
       struct mallinfo mallinfo(void);
       #else
       int      mallinfo(FAR struct mallinfo *info);
       #endif
   
   And even leads to violation of a few POSIX interfaces like:
   
       #ifdef CONFIG_CAN_PASS_STRUCTS
       int  sigqueue(int pid, int signo, union sigval value);
       #else
       int  sigqueue(int pid, int signo, FAR void *sival_ptr);
       #endif
   
   This breaks the 1st INVIOLABLES rule:
   
   Strict POSIX compliance
   -----------------------
   
     o Strict conformance to the portable standard OS interface as defined at
       OpenGroup.org.
     o A deeply embedded system requires some special support.  Special
       support must be minimized.
     o The portable interface must never be compromised only for the sake of
       expediency.
     o Expediency or even improved performance are not justifications for
      violation of the strict POSIX interface
   
   Also, it appears that the current SDCC compilers have resolve this issue and so, perhaps,
this is no longer a problem: z88dk/z88dk#1132
   
   NOTE:  This commit cannot pass the PR checks because it depends on matching changes to
the apps/ directory.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

Mime
View raw message