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

Colin Patrick McCabe commented on HADOOP-12036:
-----------------------------------------------

bq. JNI stuff will only be pulled in if you explicitly include HadoopJNI.cmake.

OK.

bq. If you want to globally change -02 to -O3 then YARN would have to be 
modified explicitly. Without knowing exactly what flags you are going to want 
to override in advance I can't see how else you can do it, unless you have a 
better idea.

Why not set this in your proposed {{HadoopCommon.cmake}} file?

bq. I agree that not setting _GNU_SOURCE won't enforce portability, but simply 
doing Solaris test builds also won't enforce compatibility. For example the 
code covered by HADOOP-7824 is wrong, but compiles on Solaris just fine. It's 
not clear if nightly Solaris builds would actually catch the issue.

There is always more we can do.  Compiling things is not enough to find all 
errors.  Testing things is not enough to find all errors.  Even running things 
in production is not enough to find all errors.  My point was simply that the 
issues you find with a nightly Solaris build will be a strict superset of what 
you would find with any manipulation of GNU_SOURCE, making worrying about 
_GNU_SOURCE quite a waste of time.  Failing to set this can only hurt by 
creating confusion about which function is being called.  It never helps 
anything.

bq. Your point about strerror_r is an interesting one as the POSIX and Linux 
ones aren't compatible. There are 475 references to errno in the native code 
and if each of them required the use of strerror_r then someone would have had 
to go through all those places and wrap them in a platform-independent version. 
Fortunately that isn't actually necessary but it does illustrate the potential 
scale of the problem.

We did wrap "all those places that use strerror_r" in a platform-independent 
version."  The platform independent version is called {{terror}}.  I wrote it 
because of the frustrations of {{strerror_r}} on Linux.  Also, the 
{{strerror_r}} interface is cumbersome even when the correct version is 
available since it requires a buffer to be passed in.

> Consolidate all of the cmake extensions in one directory
> --------------------------------------------------------
>
>                 Key: HADOOP-12036
>                 URL: https://issues.apache.org/jira/browse/HADOOP-12036
>             Project: Hadoop Common
>          Issue Type: Sub-task
>            Reporter: Allen Wittenauer
>            Assignee: Alan Burlison
>         Attachments: prototype01.txt
>
>
> Rather than have a half-dozen redefinitions, custom extensions, etc, we 
> should move them all to one location so that the cmake environment is 
> consistent between the various native components.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to