build: link with libatomic on powerpc-linux
authorOlaf Hering <olaf@aepfle.de>
Fri, 1 Apr 2016 10:27:16 +0000 (12:27 +0200)
committerhyokeun <hyokeun.jeon@samsung.com>
Tue, 6 Sep 2016 06:55:36 +0000 (15:55 +0900)
Building on powerpc-linux fails with undefined reference to
__atomic_load_8 in icount_warp_rt(). Force linking to -latomic.

Fixes a0aa44b ("include/qemu/atomic.h: default to __atomic functions")

Signed-off-by: Olaf Hering <olaf@aepfle.de>
configure

index b882d19..dfd37b1 100755 (executable)
--- a/configure
+++ b/configure
@@ -4049,6 +4049,33 @@ if test "$usb_redir" != "no" ; then
     fi
 fi
 
+if test "$linux_user" = "no" -a "$cpu" = "ppc" -a "$targetos" = "Linux" ; then
+    # Do we need libm
+    cat > $TMPC << EOF
+    #include <unistd.h>
+    #include <stdint.h>
+    #include <qemu/atomic.h>
+    int64_t val;
+    int main(int argc, char **argv)
+    {
+      val = (int64_t)read(0, NULL, 0);
+      if (atomic_read(&val) == -1) {
+        return 0;
+      }
+      return 1;
+    }
+EOF
+    if compile_prog "-Iinclude" "" ; then
+      :
+      echo "No need to link with -latomic on powerpc-linux"
+    elif compile_prog "-Iinclude" "-latomic" ; then
+      echo "Link with -latomic on powerpc-linux"
+      libs_softmmu="$libs_softmmu -latomic"
+    else
+      error_exit "libatomic check failed"
+    fi
+fi
+
 ##########################################
 # check if we have VSS SDK headers for win