Make TWRP compile for x86-64 CPU target

Also add a short while loop to wait for fb0 to be created as was
needed on the x86-64 target for the Android emulator.

Change-Id: Ib1b87bea028ac3eac0541283334a0157cdfbce11
diff --git a/Android.mk b/Android.mk
index e76a3a9..ddd2c7d 100644
--- a/Android.mk
+++ b/Android.mk
@@ -323,7 +323,11 @@
     mkdosfs
 
 ifneq ($(TARGET_ARCH), arm64)
-    LOCAL_LDFLAGS += -Wl,-dynamic-linker,/sbin/linker
+    ifneq ($(TARGET_ARCH), x86_64)
+        LOCAL_LDFLAGS += -Wl,-dynamic-linker,/sbin/linker
+    else
+        LOCAL_LDFLAGS += -Wl,-dynamic-linker,/sbin/linker64
+    endif
 else
     LOCAL_LDFLAGS += -Wl,-dynamic-linker,/sbin/linker64
 endif
diff --git a/minuitwrp/graphics.c b/minuitwrp/graphics.c
index 10d74a7..1465ce9 100644
--- a/minuitwrp/graphics.c
+++ b/minuitwrp/graphics.c
@@ -163,12 +163,17 @@
 
 static int get_framebuffer(GGLSurface *fb)
 {
-    int fd;
+    int fd, index = 0;
     void *bits;
 
     fd = open("/dev/graphics/fb0", O_RDWR);
+    while (fd < 0 && index < 10) {
+        usleep(1000);
+        fd = open("/dev/graphics/fb0", O_RDWR);
+        index++;
+    }
     if (fd < 0) {
-        perror("cannot open fb0");
+        perror("cannot open fb0\n");
         return -1;
     }
 
diff --git a/prebuilt/Android.mk b/prebuilt/Android.mk
index 9ff304c..07e24e3 100644
--- a/prebuilt/Android.mk
+++ b/prebuilt/Android.mk
@@ -26,7 +26,12 @@
 RELINK_SOURCE_FILES += $(TARGET_OUT_EXECUTABLES)/e2fsck
 RELINK_SOURCE_FILES += $(TARGET_OUT_EXECUTABLES)/mke2fs
 RELINK_SOURCE_FILES += $(TARGET_OUT_EXECUTABLES)/tune2fs
-RELINK_SOURCE_FILES += $(TARGET_OUT_EXECUTABLES)/linker
+ifneq ($(TARGET_ARCH), x86_64)
+    RELINK_SOURCE_FILES += $(TARGET_OUT_EXECUTABLES)/linker
+endif
+ifeq ($(TARGET_ARCH), x86_64)
+    RELINK_SOURCE_FILES += $(TARGET_OUT_EXECUTABLES)/linker64
+endif
 ifeq ($(TARGET_ARCH), arm64)
     RELINK_SOURCE_FILES += $(TARGET_OUT_EXECUTABLES)/linker64
 endif