Opened 15 years ago
Closed 15 years ago
#20965 closed defect (fixed)
exempi @2.1.1 fails to build 64-bit
Reported by: | nerdling (Jeremy Lavergne) | Owned by: | dbevans (David B. Evans) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 1.8.99 |
Keywords: | LP64 | Cc: | yakoh@…, reco@…, thedoobs@…, eilemann@…, iwilcox@…, mf2k (Frank Schima), bgrupe27, brody1@…, jeff.laporte@…, steve_macdougall@…, sawtdk@…, brian.cunnie@…, LMariachi, giancarlo.degani@…, asymptotic.freedom@…, imperatornulli@…, mike.c.wilding@…, dpkatz@… |
Port: | exempi |
Description
DEBUG: Assembled command: 'cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_exempi/work/exempi-2.1.1" && /usr/bin/nice -n 10 /usr/bin/make -j2 all' Making all in third-party Making all in MD5 Making all in source Making all in common Making all in XMPCore Making all in XMPFiles Making all in FileHandlers CXX -n XMPEG4_Handler.o CXX -n XMOV_Handler.o In file included from MOV_Handler.cpp:17: MOV_Handler.hpp:81: error: 'DataHandler' does not name a type MOV_Handler.hpp:82: error: 'Movie' does not name a type MOV_Handler.cpp:39: error: 'UserData' has not been declared MOV_Handler.cpp:42: error: 'UserData' has not been declared MOV_Handler.cpp: In function 'bool MOV_CheckFormat(XMP_FileFormat, const char*, void*, XMPFiles*)': MOV_Handler.cpp:90: error: 'Movie' was not declared in this scope MOV_Handler.cpp:90: error: expected `;' before 'tempMovie' MOV_Handler.cpp:96: error: 'kQTNativeDefaultPathStyle' was not declared in this scope MOV_Handler.cpp:96: error: 'QTNewDataReferenceFromFullPathCFString' was not declared in this scope MOV_Handler.cpp:99: error: 'newMovieDontResolveDataRefs' was not declared in this scope MOV_Handler.cpp:99: error: 'newMovieDontAskUnresolvedDataRefs' was not declared in this scope MOV_Handler.cpp:100: error: 'tempMovie' was not declared in this scope MOV_Handler.cpp:100: error: 'NewMovieFromDataRef' was not declared in this scope MOV_Handler.cpp:107: error: 'DisposeMovie' was not declared in this scope MOV_Handler.cpp: In constructor 'MOV_MetaHandler::MOV_MetaHandler(XMPFiles*)': MOV_Handler.cpp:121: error: class 'MOV_MetaHandler' does not have any field named 'mMovieDataHandler' MOV_Handler.cpp:121: error: class 'MOV_MetaHandler' does not have any field named 'mMovie' MOV_Handler.cpp: In member function 'virtual void MOV_MetaHandler::UpdateFile(bool)': MOV_Handler.cpp:177: error: 'kDataHCanRead' was not declared in this scope MOV_Handler.cpp:177: error: 'kDataHCanWrite' was not declared in this scope MOV_Handler.cpp:179: error: 'UserData' was not declared in this scope MOV_Handler.cpp:179: error: expected `;' before 'movieUserData' MOV_Handler.cpp:180: error: 'movieUserData' was not declared in this scope MOV_Handler.cpp:185: error: 'GetUserData' was not declared in this scope MOV_Handler.cpp:187: error: 'RemoveUserData' was not declared in this scope MOV_Handler.cpp:196: error: 'AddUserData' was not declared in this scope MOV_Handler.cpp: In member function 'bool MOV_MetaHandler::OpenMovie(long int)': MOV_Handler.cpp:230: error: 'class MOV_MetaHandler' has no member named 'mMovie' MOV_Handler.cpp:233: error: 'class MOV_MetaHandler' has no member named 'mMovieDataHandler' MOV_Handler.cpp:233: error: 'class MOV_MetaHandler' has no member named 'mMovie' MOV_Handler.cpp:243: error: 'kQTNativeDefaultPathStyle' was not declared in this scope MOV_Handler.cpp:244: error: 'QTNewDataReferenceFromFullPathCFString' was not declared in this scope MOV_Handler.cpp:248: error: 'class MOV_MetaHandler' has no member named 'mMovieDataHandler' MOV_Handler.cpp:248: error: 'OpenMovieStorage' was not declared in this scope MOV_Handler.cpp:251: error: 'newMovieDontAskUnresolvedDataRefs' was not declared in this scope MOV_Handler.cpp:253: error: 'class MOV_MetaHandler' has no member named 'mMovie' MOV_Handler.cpp:253: error: 'NewMovieFromDataRef' was not declared in this scope MOV_Handler.cpp:261: error: 'class MOV_MetaHandler' has no member named 'mMovie' MOV_Handler.cpp:261: error: 'class MOV_MetaHandler' has no member named 'mMovie' MOV_Handler.cpp:261: error: 'DisposeMovie' was not declared in this scope MOV_Handler.cpp:262: error: 'class MOV_MetaHandler' has no member named 'mMovieDataHandler' MOV_Handler.cpp:262: error: 'class MOV_MetaHandler' has no member named 'mMovieDataHandler' MOV_Handler.cpp:262: error: 'CloseMovieStorage' was not declared in this scope MOV_Handler.cpp:265: error: 'class MOV_MetaHandler' has no member named 'mMovie' MOV_Handler.cpp:266: error: 'class MOV_MetaHandler' has no member named 'mMovieDataHandler' MOV_Handler.cpp: In member function 'void MOV_MetaHandler::CloseMovie()': MOV_Handler.cpp:281: error: 'class MOV_MetaHandler' has no member named 'mMovie' MOV_Handler.cpp:282: error: 'class MOV_MetaHandler' has no member named 'mMovie' MOV_Handler.cpp:282: error: 'HasMovieChanged' was not declared in this scope MOV_Handler.cpp:283: error: 'class MOV_MetaHandler' has no member named 'mMovie' MOV_Handler.cpp:283: error: 'class MOV_MetaHandler' has no member named 'mMovieDataHandler' MOV_Handler.cpp:283: error: 'UpdateMovieInStorage' was not declared in this scope MOV_Handler.cpp:285: error: 'class MOV_MetaHandler' has no member named 'mMovie' MOV_Handler.cpp:285: error: 'DisposeMovie' was not declared in this scope MOV_Handler.cpp:288: error: 'class MOV_MetaHandler' has no member named 'mMovieDataHandler' MOV_Handler.cpp:288: error: 'class MOV_MetaHandler' has no member named 'mMovieDataHandler' MOV_Handler.cpp:288: error: 'CloseMovieStorage' was not declared in this scope MOV_Handler.cpp:291: error: 'class MOV_MetaHandler' has no member named 'mMovie' MOV_Handler.cpp:292: error: 'class MOV_MetaHandler' has no member named 'mMovieDataHandler' MOV_Handler.cpp: In member function 'virtual void MOV_MetaHandler::CacheFileData()': MOV_Handler.cpp:524: error: 'kDataHCanRead' was not declared in this scope MOV_Handler.cpp:526: error: 'UserData' was not declared in this scope MOV_Handler.cpp:526: error: expected `;' before 'movieUserData' MOV_Handler.cpp:527: error: 'movieUserData' was not declared in this scope MOV_Handler.cpp:532: error: 'GetUserData' was not declared in this scope MOV_Handler.cpp: At global scope: MOV_Handler.cpp:728: error: 'UserData' was not declared in this scope MOV_Handler.cpp:728: error: 'movieUserData' was not declared in this scope MOV_Handler.cpp:728: error: expected primary-expression before '*' token MOV_Handler.cpp:728: error: 'epla' was not declared in this scope MOV_Handler.cpp:728: error: initializer expression list treated as compound expression MOV_Handler.cpp:729: error: expected ',' or ';' before '{' token make[3]: *** [MOV_Handler.lo] Error 1 make[3]: *** Waiting for unfinished jobs.... make[2]: *** [all-recursive] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all-recursive] Error 1 Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_exempi/work/exempi-2.1.1" && /usr/bin/nice -n 10 /usr/bin/make -j2 all " returned error 2 Command output: MOV_Handler.cpp:282: error: 'class MOV_MetaHandler' has no member named 'mMovie' MOV_Handler.cpp:282: error: 'HasMovieChanged' was not declared in this scope MOV_Handler.cpp:283: error: 'class MOV_MetaHandler' has no member named 'mMovie' MOV_Handler.cpp:283: error: 'class MOV_MetaHandler' has no member named 'mMovieDataHandler' MOV_Handler.cpp:283: error: 'UpdateMovieInStorage' was not declared in this scope MOV_Handler.cpp:285: error: 'class MOV_MetaHandler' has no member named 'mMovie' MOV_Handler.cpp:285: error: 'DisposeMovie' was not declared in this scope MOV_Handler.cpp:288: error: 'class MOV_MetaHandler' has no member named 'mMovieDataHandler' MOV_Handler.cpp:288: error: 'class MOV_MetaHandler' has no member named 'mMovieDataHandler' MOV_Handler.cpp:288: error: 'CloseMovieStorage' was not declared in this scope MOV_Handler.cpp:291: error: 'class MOV_MetaHandler' has no member named 'mMovie' MOV_Handler.cpp:292: error: 'class MOV_MetaHandler' has no member named 'mMovieDataHandler' MOV_Handler.cpp: In member function 'virtual void MOV_MetaHandler::CacheFileData()': MOV_Handler.cpp:524: error: 'kDataHCanRead' was not declared in this scope MOV_Handler.cpp:526: error: 'UserData' was not declared in this scope MOV_Handler.cpp:526: error: expected `;' before 'movieUserData' MOV_Handler.cpp:527: error: 'movieUserData' was not declared in this scope MOV_Handler.cpp:532: error: 'GetUserData' was not declared in this scope MOV_Handler.cpp: At global scope: MOV_Handler.cpp:728: error: 'UserData' was not declared in this scope MOV_Handler.cpp:728: error: 'movieUserData' was not declared in this scope MOV_Handler.cpp:728: error: expected primary-expression before '*' token MOV_Handler.cpp:728: error: 'epla' was not declared in this scope MOV_Handler.cpp:728: error: initializer expression list treated as compound expression MOV_Handler.cpp:729: error: expected ',' or ';' before '{' token make[3]: *** [MOV_Handler.lo] Error 1 make[3]: *** Waiting for unfinished jobs.... make[2]: *** [all-recursive] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all-recursive] Error 1 DEBUG: Backtrace: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_graphics_exempi/work/exempi-2.1.1" && /usr/bin/nice -n 10 /usr/bin/make -j2 all " returned error 2 Command output: MOV_Handler.cpp:282: error: 'class MOV_MetaHandler' has no member named 'mMovie' MOV_Handler.cpp:282: error: 'HasMovieChanged' was not declared in this scope MOV_Handler.cpp:283: error: 'class MOV_MetaHandler' has no member named 'mMovie' MOV_Handler.cpp:283: error: 'class MOV_MetaHandler' has no member named 'mMovieDataHandler' MOV_Handler.cpp:283: error: 'UpdateMovieInStorage' was not declared in this scope MOV_Handler.cpp:285: error: 'class MOV_MetaHandler' has no member named 'mMovie' MOV_Handler.cpp:285: error: 'DisposeMovie' was not declared in this scope MOV_Handler.cpp:288: error: 'class MOV_MetaHandler' has no member named 'mMovieDataHandler' MOV_Handler.cpp:288: error: 'class MOV_MetaHandler' has no member named 'mMovieDataHandler' MOV_Handler.cpp:288: error: 'CloseMovieStorage' was not declared in this scope MOV_Handler.cpp:291: error: 'class MOV_MetaHandler' has no member named 'mMovie' MOV_Handler.cpp:292: error: 'class MOV_MetaHandler' has no member named 'mMovieDataHandler' MOV_Handler.cpp: In member function 'virtual void MOV_MetaHandler::CacheFileData()': MOV_Handler.cpp:524: error: 'kDataHCanRead' was not declared in this scope MOV_Handler.cpp:526: error: 'UserData' was not declared in this scope MOV_Handler.cpp:526: error: expected `;' before 'movieUserData' MOV_Handler.cpp:527: error: 'movieUserData' was not declared in this scope MOV_Handler.cpp:532: error: 'GetUserData' was not declared in this scope MOV_Handler.cpp: At global scope: MOV_Handler.cpp:728: error: 'UserData' was not declared in this scope MOV_Handler.cpp:728: error: 'movieUserData' was not declared in this scope MOV_Handler.cpp:728: error: expected primary-expression before '*' token MOV_Handler.cpp:728: error: 'epla' was not declared in this scope MOV_Handler.cpp:728: error: initializer expression list treated as compound expression MOV_Handler.cpp:729: error: expected ',' or ';' before '{' token make[3]: *** [MOV_Handler.lo] Error 1 make[3]: *** Waiting for unfinished jobs.... make[2]: *** [all-recursive] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all-recursive] Error 1
Attachments (4)
Change History (35)
comment:1 Changed 15 years ago by dbevans (David B. Evans)
Status: | new → assigned |
---|
comment:3 Changed 15 years ago by nerdling (Jeremy Lavergne)
Keywords: | snowleopard added |
---|
Yes, snow leopard. I wasn't sure if the errors were specific.
comment:6 Changed 15 years ago by reco@…
I tried to install old quicktime on snow leopard - does not help :(
comment:12 Changed 15 years ago by dbevans (David B. Evans)
Summary: | exempi @2.1.1 fails to build → exempi @2.1.1 fails to build on snow leopard |
---|
comment:17 Changed 15 years ago by reco@…
what do we need to get this going? if its a question of $$ lets collect on http://www.fundable.com/
what do you guys think?
comment:26 Changed 15 years ago by mike.c.wilding@…
Adding the following build arguments after the config.args in the portfile resolves the MOV_Handler.cpp compilation error but leaves some make file dependency problems (see below) which I haven't resolved (yet).
if { ${os.platform} == "darwin" && ${os.major} > 9 } { build.args CFLAGS_SYS="-DMACENV -DXMP_64 -l/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers" }
Note: Since Carbon framework is supposedly 32 bit only, compiling as an x86_64 target against the Carbon Framework (as I'm doing above) does not actually make sense. The exempi library will fail to link would fail against the Carbon Framework. We would either have to compile exempi library as i386 (in which case you could not link and other x86_64 ports against it) or try to link against Cocoa x86_64 framework instead.
CarbonCore.framework/Headers" " returned error 2 Command output: make[1]: *** [all-recursive] Error 1 Making all in samples Making all in source make[2]: *** No rule to make target `../../source/XMPFiles/libXMPFiles.la', needed by `xmpcoverage'. Stop. make[2]: *** Waiting for unfinished jobs.... CC -n XXMPScanner.o CC -n XXMPCoreCoverage.o XMPCoreCoverage.cpp: In function 'void VerifyNewlines(FILE*, std::string, const char*)': XMPCoreCoverage.cpp:362: warning: format '%d' expects type 'int', but argument 3 has type 'size_t' XMPCoreCoverage.cpp: In function 'void DoXMPCoreCoverage(FILE*)': XMPCoreCoverage.cpp:1177: warning: format '%d' expects type 'int', but argument 3 has type 'long unsigned int' XMPCoreCoverage.cpp:1182: warning: format '%d' expects type 'int', but argument 3 has type 'size_t' XMPCoreCoverage.cpp:1186: warning: format '%d' expects type 'int', but argument 3 has type 'size_t' XMPCoreCoverage.cpp:1191: warning: format '%d' expects type 'int', but argument 3 has type 'size_t' XMPCoreCoverage.cpp:1197: warning: format '%d' expects type 'int', but argument 3 has type 'size_t' XMPCoreCoverage.cpp:1640: warning: format '%d' expects type 'int', but argument 3 has type 'long int' XMPCoreCoverage.cpp:1642: warning: format '%d' expects type 'int', but argument 3 has type 'long int' XMPCoreCoverage.cpp:1644: warning: format '%d' expects type 'int', but argument 3 has type 'long int' XMPCoreCoverage.cpp:1646: warning: format '%d' expects type 'int', but argument 3 has type 'long int' XMPCoreCoverage.cpp:1648: warning: format '%d' expects type 'int', but argument 3 has type 'long int' XMPCoreCoverage.cpp:1650: warning: format '%X' expects type 'unsigned int', but argument 3 has type 'long int' XMPCoreCoverage.cpp:1652: warning: format '%X' expects type 'unsigned int', but argument 3 has type 'long int' make[1]: *** [all-recursive] Error 1 Making all in exempi Making all in tests make[2]: *** No rule to make target `../source/XMPFiles/libXMPFiles.la', needed by `libexempi.la'. Stop. make[2]: *** Waiting for unfinished jobs.... CXX -n Xexempi.o make[1]: *** [all-recursive] Error 1 make: *** [all-recursive] Error 1 Error: Status 1 encountered during processing.
comment:27 Changed 15 years ago by mike.c.wilding@…
I have successfully compiled and linked exempi under Snow Leopard subject to the following caveat; Quicktime/mov file support is removed due to Carbon QuickTime framework being 32 bit only. As far as I can gather the only way to fix this without forcing a 32 bit compile of the library (which would be useless for linking other 64 bit ports against) would be to re-write the Mac OS specific parts of the library to use the Cocoa x64 framework equivalents (if possible).
I've nearly completed a port file which will build exempi under Snow Leopard. However, it remains to be seen if/what ports will be able to link against it sucessfully with the missing Quicktime/mov support and if the resulting applications would actually dynamically link against the library and run without errors or side effects.
Changed 15 years ago by mike.c.wilding@…
Attachment: | patch-Portfile added |
---|
Portfile to patch for Snow Leopard (LIMITATION: removes Quicktime/mov support)
Changed 15 years ago by mike.c.wilding@…
Attachment: | patch-source__XMPFiles__FileHandlers__Makefile.am added |
---|
patch file for Snow Leopard
Changed 15 years ago by mike.c.wilding@…
Attachment: | patch-source__XMPFiles__FormatSupport__Makefile.am added |
---|
patch file for Snow Leopard
Changed 15 years ago by mike.c.wilding@…
Attachment: | patch-source__XMPFiles__FormatSupport__Reconcile_Impl.cpp added |
---|
patch file for Snow Leopard
comment:28 follow-up: 31 Changed 15 years ago by mike.c.wilding@…
I've attached a Portfile patch and associated patches which allows the exempi library to compile and link under Snow Leopard.
NOTE: This patch removes Quicktime/mov file support (as there is no 64 bit support for Carbon QuickTime framework). See https://developer.apple.com/mac/library/documentation/Carbon/Conceptual/Carbon64BitGuide/OtherAPIChanges/OtherAPIChanges.html#//apple_ref/doc/uid/TP40004381-CH5-SW2.
TODO: Restore QuickTime/mov support by re-writing ${worksrcpath}/source/XMPFiles/FileHandlers/MOV_Handler.cpp and ${worksrcpath}/source/XMPFiles/FormatSupport/QuickTime_Support.cpp to use QuickTime Kit instead of Carbon QuickTime framework. See https://developer.apple.com/mac/library/documentation/QuickTime/Conceptual/QTKitProgrammingGuide/Chapter01/Introduction.html
comment:30 Changed 15 years ago by jmroot (Joshua Root)
Keywords: | LP64 added; snowleopard removed |
---|---|
Summary: | exempi @2.1.1 fails to build on snow leopard → exempi @2.1.1 fails to build 64-bit |
comment:31 Changed 15 years ago by jmroot (Joshua Root)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Replying to mike.c.wilding@…:
I've attached a Portfile patch and associated patches which allows the exempi library to compile and link under Snow Leopard.
The portfile patch is a mess, but I committed something more reasonable that uses the patches you supplied for the other files in r59183.
On 10.6 I assume? This is QuickDraw stuff.