Opened 15 years ago

Closed 14 years ago

#20908 closed defect (fixed)

synergy fails to build 64-bit

Reported by: docwhat@… Owned by: ascarter@…
Priority: Normal Milestone:
Component: ports Version: 1.8.0
Keywords: LP64 Cc: cssdev, nerdling (Jeremy Lavergne), neil_mayhew@…, ryandesign (Ryan Carsten Schmidt)
Port: synergy

Description (last modified by jmroot (Joshua Root))

root@macbookpro ~# port install synergy
--->  Computing dependencies for synergy
--->  Building synergy
Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_sysutils_synergy/work/synergy-1.3.1" && /usr/bin/make -j2 all " returned error 2
Command output:                  from /System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h:21,
                 from /System/Library/Frameworks/Carbon.framework/Headers/Carbon.h:20,
                 from COSXClipboard.h:20,
                 from COSXClipboard.cpp:15:
/System/Library/Frameworks/CoreServices.framework/Headers/../Frameworks/CarbonCore.framework/Headers/MacTypes.h:91: error: conflicting declaration 'typedef unsigned int UInt32'
../../lib/common/BasicTypes.h:76: error: 'UInt32' has a previous declaration as 'typedef long unsigned int UInt32'
/System/Library/Frameworks/CoreServices.framework/Headers/../Frameworks/CarbonCore.framework/Headers/MacTypes.h:92: error: conflicting declaration 'typedef int SInt32'
../../lib/common/BasicTypes.h:72: error: 'SInt32' has a previous declaration as 'typedef long int SInt32'
make[3]: *** [COSXClipboardAnyTextConverter.o] Error 1
make[3]: *** Waiting for unfinished jobs....
COSXClipboard.cpp: In member function 'virtual bool COSXClipboard::empty()':
COSXClipboard.cpp:44: error: 'ClearScrap' was not declared in this scope
COSXClipboard.cpp:56: error: 'PutScrapFlavor' was not declared in this scope
COSXClipboard.cpp: In member function 'virtual void COSXClipboard::add(IClipboard::EFormat, const CString&)':
COSXClipboard.cpp:85: error: 'PutScrapFlavor' was not declared in this scope
COSXClipboard.cpp: In member function 'virtual bool COSXClipboard::open(UInt32) const':
COSXClipboard.cpp:95: error: 'GetCurrentScrap' was not declared in this scope
COSXClipboard.cpp: In member function 'virtual bool COSXClipboard::has(IClipboard::EFormat) const':
COSXClipboard.cpp:124: error: 'GetScrapFlavorFlags' was not declared in this scope
COSXClipboard.cpp: In member function 'virtual CString COSXClipboard::get(IClipboard::EFormat) const':
COSXClipboard.cpp:148: error: 'GetScrapFlavorFlags' was not declared in this scope
COSXClipboard.cpp:164: error: 'GetScrapFlavorSize' was not declared in this scope
COSXClipboard.cpp:175: error: 'GetScrapFlavorData' was not declared in this scope
COSXClipboard.cpp: In static member function 'static bool COSXClipboard::isOwnedBySynergy()':
COSXClipboard.cpp:209: error: 'GetCurrentScrap' was not declared in this scope
COSXClipboard.cpp:211: error: 'GetScrapFlavorFlags' was not declared in this scope
make[3]: *** [COSXClipboard.o] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

Error: Status 1 encountered during processing.
root@macbookpro ~# 

Change History (16)

comment:1 Changed 15 years ago by docwhat@…

I have a pretty lame work around for this:

Edit /opt/local/etc/macports/macports.conf and change "universal_archs" to just be "i386" Then build using:

root@macbookpro ~# port clean synergy ; port install synergy +universal                       

comment:2 Changed 15 years ago by docwhat@…

Ah crud. Not only did I mess up the formatting, I included the wrong error.

The one in my initial post is for trying to force it build as x86_64 only by manually editing the makefiles after doing a "port config synergy".

Here's the real error from a "clean" macports:

root@macbookpro ~# port install synergy
--->  Computing dependencies for synergy
--->  Fetching synergy
--->  Verifying checksum(s) for synergy
--->  Extracting synergy
--->  Applying patches to synergy
--->  Configuring synergy
--->  Building synergy
Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_sysutils_synergy/work/synergy-1.3.1" && /usr/bin/make -j2 all " returned error 2
Command output: /usr/bin/make  all-recursive
Making all in lib
Making all in common
source='Version.cpp' object='Version.o' libtool=no \
	depfile='.deps/Version.Po' tmpdepfile='.deps/Version.TPo' \
	MACOSX_DEPLOYMENT_TARGET=10.2 depmode=gcc3 /bin/sh ../../config/depcomp \
	/usr/bin/g++-4.2 -DHAVE_CONFIG_H -I. -I. -I../..   -I/opt/local/include -arch i386  -O2 -arch x86_64 -g -Wall -Wno-unknown-pragmas   -DSYSAPI_UNIX=1 -DWINAPI_CARBON=1 -D_THREAD_SAFE  -c -o Version.o `test -f 'Version.cpp' || echo './'`Version.cpp
g++-4.2: -E, -S, -save-temps and -M options are not allowed with multiple -arch flags
make[3]: *** [Version.o] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2

Error: Status 1 encountered during processing.

comment:3 Changed 15 years ago by tobypeterson

my old hack to make this work is broken now that we have build_arch

comment:4 Changed 15 years ago by cssdev

Cc: css@… added

Cc Me!

comment:5 Changed 15 years ago by jmroot (Joshua Root)

Owner: changed from macports-tickets@… to ascarter@…
Port: synergy added

comment:6 Changed 15 years ago by jmroot (Joshua Root)

Description: modified (diff)

comment:7 Changed 15 years ago by jmroot (Joshua Root)

Updated the 32-bit hack in r56602.

comment:8 Changed 15 years ago by raimue (Rainer Müller)

Keywords: snowleopard LP64 added

comment:9 in reply to:  7 Changed 15 years ago by cssdev

Replying to jmr@…:

Updated the 32-bit hack in r56602.

Seems to work fine for me ... I had to tweak the firewall to allow connections, but Synergy's running fine among my machines now.

comment:10 Changed 15 years ago by nerdling (Jeremy Lavergne)

Cc: snc@… added

Cc Me!

comment:11 Changed 15 years ago by neil_mayhew@…

Cc: neil_mayhew@… added

Cc Me!

comment:12 Changed 15 years ago by neil_mayhew@…

+universal is not working for me on SL. There is stuff in the Portfile to force i386 which references this ticket, but it isn't working for +universal. This change to the Portfile seems to fix it:

--- Portfile.orig	2009-08-30 12:41:30.000000000 -0600
+++ Portfile	2009-11-25 23:44:10.000000000 -0700
@@ -45,6 +45,8 @@
 # Force 32-bit, all kinds of Carbon cruft in here. (#20908)
 if {$build_arch == "x86_64"} {
     configure.build_arch i386
+    configure.universal_archs i386
 } elseif {$build_arch == "ppc64"} {
     configure.build_arch ppc
+    configure.universal_archs ppc
 }

I haven't tested it on a ppc machine, or on a Leopard machine with universal_archs set to x86_64 i386 in macports.conf.

comment:13 in reply to:  12 Changed 15 years ago by neil_mayhew@…

I forgot to mention that I have universal_archs set to x86_64 i386 in macports.conf on Snow Leopard. I also have +universal set in variants.conf. I do this because I have several 32-bit programs that need to be able to link to 32-bit versions of libraries.

comment:14 Changed 15 years ago by neil_mayhew@…

I guess this doesn't work if you have universal_archs set to something other than x86_64 i386, such as x86_64 ppc64. The code really needs to have logic to go through universal_archs converting any 64-bit arch to 32, but I don't know enough tcl to know how to do this.

comment:15 Changed 15 years ago by jmroot (Joshua Root)

Keywords: snowleopard removed
Summary: synergy fails to build in snow leopardsynergy fails to build 64-bit

comment:16 Changed 14 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: ryandesign@… added
Resolution: fixed
Status: newclosed

I switched synergy to use supported_archs in r71610 which resolves the complaints about the universal variant.

Even synergy 1.3.5-rc does not support 64-bit. Complaints about that must be directed to the developers of synergy.

Note: See TracTickets for help on using tickets.