hadoop-mapreduce-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ayappan (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (MAPREDUCE-6241) Native compilation fails for Checksum.cc due to an incompatibility of assembler register constraint for PowerPC
Date Fri, 10 Apr 2015 07:31:12 GMT

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

Ayappan commented on MAPREDUCE-6241:
------------------------------------

The patch fails in PPC64LE machine due to the following reason.

#if defined(USE_HARDWARE_CRC32C) && defined(__GNUC__) && (defined(__amd64__)
|| defined(__i386))        --->nothing is defined in PPC64LE

static int cached_cpu_supports_crc32; // initialized by constructor below                
                                                    ----> So, it won't get declared
static uint32_t crc32c_hardware(uint32_t crc, const uint8_t* data, size_t length);
..................
...............
#endif
..........
.............

uint32_t crc32c_sb8(uint32_t crc, const uint8_t *buf, size_t length) {
#ifdef USE_HARDWARE_CRC32C                     
  if (likely(cached_cpu_supports_crc32)) {                                           ---->
fails here since cached_cpu_supports_crc32 is not declared 
    return crc32c_hardware(crc, buf, length);
  } else {
    return crc32c_sb8_software(crc, buf, length);
  }
#else
  return crc32c_sb8_software(crc, buf, length);
#endif
}

The other "#ifdef USE_HARDWARE_CRC32C " also has to be modified to "#if defined(USE_HARDWARE_CRC32C)
&& defined(__GNUC__) && (defined(__amd64__) || defined(__i386))"


> Native compilation fails for Checksum.cc due to an  incompatibility of assembler register
constraint for PowerPC
> ----------------------------------------------------------------------------------------------------------------
>
>                 Key: MAPREDUCE-6241
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-6241
>             Project: Hadoop Map/Reduce
>          Issue Type: Bug
>          Components: build
>    Affects Versions: 3.0.0
>         Environment: Debian/Jessie, kernel 3.18.5,  ppc64 GNU/Linux
> gcc (Debian 4.9.1-19)
> protobuf 2.6.1
> OpenJDK Runtime Environment (IcedTea 2.5.3) (7u71-2.5.3-2)
> OpenJDK Zero VM (build 24.65-b04, interpreted mode)
> source was cloned (and updated) from Apache-Hadoop's git repository 
>            Reporter: Stephan Drescher
>            Assignee: Binglin Chang
>            Priority: Minor
>              Labels: features
>         Attachments: MAPREDUCE-6241.001.patch
>
>
> Issue when using assembler code for performance optimization on the powerpc platform
(compiled for 32bit)
> mvn compile -Pnative -DskipTests
> [exec] /usr/bin/c++   -Dnativetask_EXPORTS -m32  -DSIMPLE_MEMCPY -fno-strict-aliasing
-Wall -Wno-sign-compare -g -O2 -DNDEBUG -fPIC -I/home/hadoop/Developer/hadoop/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-nativetask/target/native/javah
-I/home/hadoop/Developer/hadoop/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-nativetask/src/main/native/src
-I/home/hadoop/Developer/hadoop/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-nativetask/src/main/native/src/util
-I/home/hadoop/Developer/hadoop/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-nativetask/src/main/native/src/lib
-I/home/hadoop/Developer/hadoop/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-nativetask/src/main/native/test
-I/home/hadoop/Developer/hadoop/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-nativetask/src
-I/home/hadoop/Developer/hadoop/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-nativetask/target/native
-I/home/hadoop/Java/java7/include -I/home/hadoop/Java/java7/include/linux -isystem /home/hadoop/Developer/hadoop/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-nativetask/src/main/native/gtest/include
   -o CMakeFiles/nativetask.dir/main/native/src/util/Checksum.cc.o -c /home/hadoop/Developer/hadoop/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-nativetask/src/main/native/src/util/Checksum.cc
>      [exec] CMakeFiles/nativetask.dir/build.make:744: recipe for target 'CMakeFiles/nativetask.dir/main/native/src/util/Checksum.cc.o'
failed
>      [exec] make[2]: Leaving directory '/home/hadoop/Developer/hadoop/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-nativetask/target/native'
>      [exec] CMakeFiles/Makefile2:95: recipe for target 'CMakeFiles/nativetask.dir/all'
failed
>      [exec] make[1]: Leaving directory '/home/hadoop/Developer/hadoop/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-nativetask/target/native'
>      [exec] Makefile:76: recipe for target 'all' failed
>      [exec] /home/hadoop/Developer/hadoop/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-nativetask/src/main/native/src/util/Checksum.cc:
In function ‘void NativeTask::init_cpu_support_flag()’:
> /home/hadoop/Developer/hadoop/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-nativetask/src/main/native/src/util/Checksum.cc:611:14:
error: impossible register constraint in ‘asm’
> -->
> "popl %%ebx" : "=a" (eax), [ebx] "=r"(ebx), "=c"(ecx), "=d"(edx) : "a" (eax_in) : "cc");
> <--



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

Mime
View raw message