[
https://issues.apache.org/jira/browse/HADOOP-12036?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14565374#comment-14565374
]
Colin Patrick McCabe commented on HADOOP-12036:
-----------------------------------------------
bq. _REENTRANT is I believe better replaced by -pthread for gcc, as that
ensures that both the appropriate preprocessor and compiler flags are both set.
However I wasn't sure that all the native code in Hadoop was threaded so I felt
it was better to explicitly specify this in each individual CMakeList.txt file
All the native code is threaded. Please set either {{\-pthread}} or
{{REENTRANT}} (it seems that -pthread simply sets {{REENTRANT}}, on gcc at
least).
bq. -D_LARGEFILE_SOURCE seems to be deprecated according to
http://man7.org/linux/man-pages/man7/feature_test_macros.7.html: "New programs
should not employ this macro; defining _XOPEN_SOURCE as just described or
defining _FILE_OFFSET_BITS with the value 64 is the preferred mechanism to
achieve the same result". _FILE_OFFSET_BITS=64 is already in the current CFLAGS
but I believe even that can't be made a global option, as noted in the
CMakeLists.txt for hadoop-yarn-project: "note: can't enable -D_LARGEFILE: see
MAPREDUCE-4258"
Ha, I filed that jira years ago. It's sad to see it hasn't been fixed yet.
Anyway, we want large file support for every other program that gets compiled.
It needs to be in this common code you are working on.
{{hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/CMakeLists.txt}}
can simply set a variable which the common code will check, and disable
large-file support if it sees.
bq. _GNU_SOURCE isn't appropriate as a compiler command-line flag, as discussed
in HADOOP-11997
Please set {{_GNU_SOURCE}} on Linux. On other OSes you can set whatever you
need to get all the features of that OS.
> 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)