[
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)