From 0845c818b087df348bbf0ae25643b8ba0d9a51fa Mon Sep 17 00:00:00 2001 From: Jerome Duval Date: Sun, 29 Jan 2017 14:08:48 +0100 Subject: [PATCH] vncserver: fix x86_64 build. --- .../vncserver/patches/vncserver-1.27.patchset | 97 ++++++++++++++++++- haiku-apps/vncserver/vncserver-1.27.recipe | 13 ++- 2 files changed, 104 insertions(+), 6 deletions(-) diff --git a/haiku-apps/vncserver/patches/vncserver-1.27.patchset b/haiku-apps/vncserver/patches/vncserver-1.27.patchset index 356ca3b86..348cbbf15 100644 --- a/haiku-apps/vncserver/patches/vncserver-1.27.patchset +++ b/haiku-apps/vncserver/patches/vncserver-1.27.patchset @@ -1,4 +1,4 @@ -From f45e9f03da995fbb870155013b3d4037cf0aeff2 Mon Sep 17 00:00:00 2001 +From a6d790e41451ef275932775569c31784e46feb5c Mon Sep 17 00:00:00 2001 From: Sergei Reznikov Date: Mon, 13 Apr 2015 15:08:26 +0300 Subject: Fix stdc++ in Jamfiles @@ -31,5 +31,98 @@ index 04c5bdf..965ea68 100644 # Specify additional paths to directories following the standard # libXXX.so or libXXX.a naming scheme. You can specify full paths -- -2.2.2 +2.10.2 + + +From 11b25e662cb44a715df56dd3e1a5a2ea48520cec Mon Sep 17 00:00:00 2001 +From: Jerome Duval +Date: Sun, 29 Jan 2017 13:58:42 +0100 +Subject: x86_64 build fix. + + +diff --git a/Jamfile-engine b/Jamfile-engine +index dc5cfaf..4287669 100644 +--- a/Jamfile-engine ++++ b/Jamfile-engine +@@ -329,7 +329,7 @@ if ( $(OSPLAT) = X86 ) + switch $(TYPE) + { + case APP : LINKFLAGS += -Xlinker -soname=_APP_ ; +- case SHARED : LINKFLAGS += -nostart -Xlinker -soname=$(NAME) ; ++ case SHARED : LINKFLAGS += -shared -Xlinker -soname=$(NAME) ; + case DRIVER : LINKFLAGS += -nostdlib /boot/develop/lib/x86/_KERNEL_ ; + } + } +diff --git a/beosserver/FrameBufferBeOS.cxx b/beosserver/FrameBufferBeOS.cxx +index 2c1be83..0902b10 100644 +--- a/beosserver/FrameBufferBeOS.cxx ++++ b/beosserver/FrameBufferBeOS.cxx +@@ -757,8 +757,8 @@ unsigned int FrameBufferBDirect::UpdatePixelFormatEtc () + char TempString [2048]; + sprintf (TempString, + "UpdatePixelFormatEtc new settings: " +- "Width=%d, Stride=%d, Height=%d, Bits at $%08X, ", +- width_, m_CachedStride, height_, (unsigned int) data); ++ "Width=%d, Stride=%d, Height=%d, Bits at $%p, ", ++ width_, m_CachedStride, height_, data); + format.print (TempString + strlen (TempString), + sizeof (TempString) - strlen (TempString)); + vlog.debug (TempString); +@@ -988,8 +988,8 @@ unsigned int FrameBufferBScreen::UpdatePixelFormatEtc () + char TempString [2048]; + sprintf (TempString, + "UpdatePixelFormatEtc new settings: " +- "Width=%d, Stride=%d, Height=%d, Bits at $%08X, ", +- width_, m_CachedStride, height_, (unsigned int) data); ++ "Width=%d, Stride=%d, Height=%d, Bits at $%p, ", ++ width_, m_CachedStride, height_, data); + format.print (TempString + strlen (TempString), + sizeof (TempString) - strlen (TempString)); + vlog.debug (TempString); +diff --git a/beosserver/InputEventInjector.cpp b/beosserver/InputEventInjector.cpp +index 466c094..0e86ceb 100644 +--- a/beosserver/InputEventInjector.cpp ++++ b/beosserver/InputEventInjector.cpp +@@ -122,7 +122,7 @@ status_t InputEventInjector::InitCheck () + + status_t InputEventInjector::Start (const char *device, void *cookie) + { +- if ((int) cookie == 76543210) ++ if ((addr_t) cookie == 76543210) + m_KeyboardEnabled = true; + else + return B_ERROR; +@@ -133,7 +133,7 @@ status_t InputEventInjector::Start (const char *device, void *cookie) + + status_t InputEventInjector::Stop (const char *device, void *cookie) + { +- if ((int) cookie == 76543210) ++ if ((addr_t) cookie == 76543210) + m_KeyboardEnabled = false; + else + return B_ERROR; +@@ -150,7 +150,7 @@ status_t InputEventInjector::Control ( + { + BMessage *EventMsgPntr = NULL; + +- if ((int) cookie == 76543210) ++ if ((addr_t) cookie == 76543210) + { + if (m_KeyboardEnabled && code == 'EInj' && message != NULL) + { +diff --git a/beosserver/ServerMain.cxx b/beosserver/ServerMain.cxx +index dcceb3a..f90cc89 100644 +--- a/beosserver/ServerMain.cxx ++++ b/beosserver/ServerMain.cxx +@@ -307,7 +307,7 @@ void ServerApp::MessageReceived (BMessage *MessagePntr) + else if (MessagePntr->what == B_CLIPBOARD_CHANGED) + { + BMessage *ClipMsgPntr; +- int32 TextLength; ++ ssize_t TextLength; + const char *TextPntr; + + if (m_VNCServerPntr != NULL && be_clipboard->Lock()) +-- +2.10.2 diff --git a/haiku-apps/vncserver/vncserver-1.27.recipe b/haiku-apps/vncserver/vncserver-1.27.recipe index c3ea1df08..4895e1ec1 100644 --- a/haiku-apps/vncserver/vncserver-1.27.recipe +++ b/haiku-apps/vncserver/vncserver-1.27.recipe @@ -22,13 +22,13 @@ System) 1996 Widget Workshop, Inc, by Dave Zimmerman, Jef Poskanzer (Java DES \ software)" LICENSE="GNU GPL v2" -REVISION="1" +REVISION="2" SOURCE_URI="http://www.agmsmith.ca/BeOS/VNCServer-4.0-BeOS-AGMS-$portVersion.zip" CHECKSUM_SHA256="ec55f781ee375f4a325faa008336394d675dcf795d8b165d669f456ba220e27a" SOURCE_DIR="VNCServer-4.0-BeOS-AGMS-$portVersion/Source Code" PATCHES="vncserver-$portVersion.patchset" -ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" +ARCHITECTURES="x86_gcc2 ?x86 x86_64" PROVIDES=" vncserver = $portVersion @@ -53,11 +53,16 @@ BUILD_PREREQUIRES=" BUILD() { + STDCPPLIBS=stdc++ + if [ "$effectiveTargetArchitecture" = x86_gcc2 ]; then + STDCPPLIBS=stdc++.r4 + fi + rm _INPUTSERVER_ ln -s /system/servers/input_server _INPUTSERVER_ mkdir -p obj.X86 - jam -fJambase -fJamfile-vncserver - jam -fJambase -fJamfile-vncpasswd + jam -fJambase -fJamfile-vncserver -sSTDCPPLIBS=$STDCPPLIBS + jam -fJambase -fJamfile-vncpasswd -sSTDCPPLIBS=$STDCPPLIBS jam -fJambase -fJamfile-InputEventInjector }