[ 
https://issues.apache.org/jira/browse/YARN-6141?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15924166#comment-15924166
 ] 

Ayappan edited comment on YARN-6141 at 3/14/17 1:34 PM:
--------------------------------------------------------

The predefined macros "__linux" and "linux" are not POSIX-compliant (neither 
are "unix" and "__unix"), so ppc64le is in the right here.  They are allowed 
with GNU extensions, but should not be allowed for strict ANSI, which is 
implied by -std=c99.  The Hadoop code should be changed to use the compliant 
"__linux__".

See 
https://gcc.gnu.org/onlinedocs/cpp/System-specific-Predefined-Macros.html#System-specific-Predefined-Macros
 for discussion and guidance.  In particular:

"We are slowly phasing out all predefined macros which are outside the reserved 
namespace. You should never use them in new programs, and we encourage you to 
correct older code to use the parallel macros whenever you find it."  Here the 
"parallel macros" are those with underscores both before and after the name, 
such as __linux__

I do not know why the POWER back end is the only one that enforces this, but 
that point is moot.  The user code should be changed.


was (Author: ayappan):
The predefined macros "__linux" and "linux' are not POSIX-compliant (neither 
are "unix" and "__unix"), so ppc64le is in the right here.  They are allowed 
with GNU extensions, but should not be allowed for strict ANSI, which is 
implied by -std=c99.  The Hadoop code should be changed to use the compliant 
"__linux__".

See 
https://gcc.gnu.org/onlinedocs/cpp/System-specific-Predefined-Macros.html#System-specific-Predefined-Macros
 for discussion and guidance.  In particular:

"We are slowly phasing out all predefined macros which are outside the reserved 
namespace. You should never use them in new programs, and we encourage you to 
correct older code to use the parallel macros whenever you find it. "  Here the 
"parallel macros" are those with underscores both before and after the name, 
such as __linux__."

I do not know why the POWER back end is the only one that enforces this, but 
that point is moot.  Hadoop code should be changed.

> ppc64le on Linux doesn't trigger __linux get_executable codepath
> ----------------------------------------------------------------
>
>                 Key: YARN-6141
>                 URL: https://issues.apache.org/jira/browse/YARN-6141
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: nodemanager
>    Affects Versions: 3.0.0-alpha3
>         Environment: $ uname -a
> Linux f8eef0f055cf 3.16.0-30-generic #40~14.04.1-Ubuntu SMP Thu Jan 15 
> 17:42:36 UTC 2015 ppc64le ppc64le ppc64le GNU/Linux
>            Reporter: Sonia Garudi
>              Labels: ppc64le
>         Attachments: YARN-6141.diff
>
>
> On ppc64le architecture, the build fails in the 'Hadoop YARN NodeManager' 
> project with the below error:
> Cannot safely determine executable path with a relative HADOOP_CONF_DIR on 
> this operating system.
> [WARNING]  #error Cannot safely determine executable path with a relative 
> HADOOP_CONF_DIR on this operating system.
> [WARNING]   ^
> [WARNING] make[2]: *** 
> [CMakeFiles/container.dir/main/native/container-executor/impl/get_executable.c.o]
>  Error 1
> [WARNING] make[2]: *** Waiting for unfinished jobs....
> [WARNING] make[1]: *** [CMakeFiles/container.dir/all] Error 2
> [WARNING] make: *** [all] Error 2
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] BUILD FAILURE
> [INFO] 
> ------------------------------------------------------------------------
> Cmake version used :
> $ /usr/bin/cmake --version
> cmake version 2.8.12.2



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: yarn-issues-h...@hadoop.apache.org

Reply via email to