Valencia Edna Serrao has posted comments on this change.

Change subject: Ported native-toolchain to work on ppc64le
......................................................................


Patch Set 1:

(16 comments)

> (5 comments)

@Matt: Thanks for your comments. I've incorporated the modifications you asked 
for.


> (11 comments)

@Tim: Thanks for your comments.

> I did a pass over most of it. It would be easier to review with
> some cleanup to avoid duplicating code and make things consistent
> with the style of the rest of the toolchain.
I've aimed to eliminate the duplicated code in most of the places and align it 
to toolchain style with the help of your comments. But in some places, 
especially, using patching mechanism in crcutil and breakpad, I will require to 
add a conditional check for them in buildall.sh. I would like to know if there 
is any better way to do it.

> I'm also reluctant to add patches here that aren't in the upstream
> projects - we're not really equipped to review them.
Yes...I understand your concern w.r.t patches which are not yet upstream. We 
are already communicating with the respective communities to get the patches 
upstreamed.

http://gerrit.cloudera.org:8080/#/c/6468/1/buildall.sh
File buildall.sh:

PS1, Line 270: master
> it would be better to use the same version as below, but just build_fake_pa
Done.


http://gerrit.cloudera.org:8080/#/c/6468/1/source/autoconf/build.sh
File source/autoconf/build.sh:

Line 31: if [[ "$(uname -p)" == "ppc64le" ]]; then
> Can you add a variable to init.sh to hold the architecture instead of repea
Done. I've added a new var 'ARCH_NAME' in init.sh that will be initialized to 
the underlying machine arch.


Line 32:   wrap ./configure \
> No need to wrap lines when they fit in 90 characters
Ok. But this is as it is upstream.


Line 35: else
> The indentation of the if is wrong. Can you fix this here and elsewhere?
Ok. Fixed.


http://gerrit.cloudera.org:8080/#/c/6468/1/source/breakpad/build.sh
File source/breakpad/build.sh:

Line 35:      wrap patch  -p1 < 
$SOURCE_DIR/source/breakpad/breakpad-88e5b2c_ppc.patch
> We already have a mechanism for including patches in the toolchain - see th
Ok. I've been able to successfully use the native-toolchain patching mechanism 
to apply the ppc-patches for breakpad. However, this leads to conditional 
setting of BREAKPAD_VERSION in buildall.sh based on a arch check.


http://gerrit.cloudera.org:8080/#/c/6468/1/source/crcutil/build.sh
File source/crcutil/build.sh:

Line 37: if [[ "$(uname -p)" == "ppc64le" ]]; then
> Indentation
Fixed.


Line 42:   wrap autoreconf -i;
> Why not apply the patch before running autogen.sh above?
The patch is applied on Makefile.am which is generated only after autogen.sh. 
Therefore, cannot apply the patch before autogen.sh. 

I used the native-toolchain patching mechanism here. It works fine for the 
"crc_interface_cc.patch", however, not for the "crc_makefile_am.patch", as the 
required file "Makefile.am" is not available at this point and will be 
generated later when the autogen.sh is executed.

In this case, I might have to use my current approach without using the 
patching mechanism.

Please let me know if there is any other better way to get the Makefile.am 
patch applied.


http://gerrit.cloudera.org:8080/#/c/6468/1/source/crcutil/ppc-patches/crc_interface_cc.patch
File source/crcutil/ppc-patches/crc_interface_cc.patch:

Line 1: --- 
/home/test/crcutil-440ba7babeff77ffad992df3a10c767f184e946e/examples/interface.cc
   2014-05-23 09:31:26.000000000 +0530
> I don't really understand what this patch does and we don't know enough abo
Since this code is part of the examples section, I have just worked around the 
compilation error. I am yet to fix it appropriately. Once done I’ll surely push 
it upstream.


http://gerrit.cloudera.org:8080/#/c/6468/1/source/cyrus-sasl/build.sh
File source/cyrus-sasl/build.sh:

Line 51:     CFLAGS="$CFLAGS -fPIC -DPIC" CXXFLAGS="$CXXFLAGS -fPIC -DPIC" wrap 
./configure \
> Why not just put the additional flag into CONFIGURE_FLAGS above?
Agreed. I've done the change.


http://gerrit.cloudera.org:8080/#/c/6468/1/source/glog/build.sh
File source/glog/build.sh:

Line 37:     --build=powerpc64le-unknown-linux-gnu \
> The command is mostly the same. Why not factor out the different flag into 
Yes. I've done the change.


http://gerrit.cloudera.org:8080/#/c/6468/1/source/kudu/build.sh
File source/kudu/build.sh:

Line 68:  
> Can you remove the build changes for now since it sounds like this is still
Ok. Done


PS1, Line 70: git clone https://github.com/ibmsoe/kudu
> The Kudu changes will be merged into upstream Kudu master, right?
Yes. Right.


PS1, Line 121:     echo "Installing gcc-4.9.3 to build kudu src code on ppc"
             :     source $SOURCE_DIR/source/kudu/setup_gcc493.sh
> why do you need a different version of gcc to build kudu but not for other 
GCC_VERSION in init.sh is set to 4.9.2. This gcc version works perfect for all 
of the native-toolchain components, except, kudu. To build kudu on ppc64le, we 
require to translate the SSE instructions to their altivec equivalent. The gcc 
version 4.9.2 doesn’t support certain required altivec functions, that is why I 
had to use gcc-4.9.3 which supports all the required altivec functions.


http://gerrit.cloudera.org:8080/#/c/6468/1/source/kudu/kudu-config.sh
File source/kudu/kudu-config.sh:

> this file is misleading because it's specific to the ppc build. regardless,
Since I’ll continue using ‘build_fake_package’ for kudu in buildall.sh (as I’m 
currently aligning the ppc64le ported kudu to the latest upstream), I agree 
that it’ll be better remove the kudu-config.sh for now.
Removed.


http://gerrit.cloudera.org:8080/#/c/6468/1/source/libevent/build.sh
File source/libevent/build.sh:

Line 34: if [[ "$(uname -p)" == "ppc64le" ]]; then
> Indentation
Fixed.


Line 35:   wrap ./configure --build=powerpc64le-unknown-linux-gnu 
--prefix=$LOCAL_INSTALL
> Factor out the different parts into a CONFIGURE_FLAGS variable here.
Done.


-- 
To view, visit http://gerrit.cloudera.org:8080/6468
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I7931752ca497bc7a5e3cc574bbb54637f382c72a
Gerrit-PatchSet: 1
Gerrit-Project: native-toolchain
Gerrit-Branch: master
Gerrit-Owner: Valencia Edna Serrao <vser...@us.ibm.com>
Gerrit-Reviewer: Jim Apple <jbapple-imp...@apache.org>
Gerrit-Reviewer: Matthew Jacobs <m...@cloudera.com>
Gerrit-Reviewer: Tim Armstrong <tarmstr...@cloudera.com>
Gerrit-Reviewer: Valencia Edna Serrao <vser...@us.ibm.com>
Gerrit-HasComments: Yes

Reply via email to