Opened 12 years ago

Closed 12 years ago

Last modified 11 years ago

#34232 closed defect (fixed)

swarm installs headers which conflict with system headers

Reported by: jmstephensjr@… Owned by: cristiano.fontana@…
Priority: Normal Milestone:
Component: ports Version: 2.0.4
Keywords: Cc: mfeiri, jeremyhu (Jeremy Huddleston Sequoia)
Port: cctools swarm

Description (last modified by ryandesign (Ryan Carsten Schmidt))

I have tried to install this port several times in the last few days. All attempts failed. This port now required for gcc 4 series.

System as follows:

  • Mac 10.6.8
  • MacPorts 2.0.4

Thanks in advance.

JMS

Attachments (7)

cctools.txt (213.2 KB) - added by jmstephensjr@… 12 years ago.
debug output
installed.txt (4.7 KB) - added by jmstephensjr@… 12 years ago.
ports installed
print_objc.pp.c (196.5 KB) - added by jmstephensjr@… 12 years ago.
using gcc-4.2
clang_print_objc.pp.c (196.2 KB) - added by jmstephensjr@… 12 years ago.
using clang v1.5
objc-api.h (20.2 KB) - added by jmstephensjr@… 12 years ago.
from /opt/local/include/objc/
message.h (6.8 KB) - added by jmstephensjr@… 12 years ago.
from /usr/include/objc/
cctools_no_swarm.txt (258.0 KB) - added by jmstephensjr@… 12 years ago.
removed swarm and tried to compile/install (success)

Download all attachments as: .zip

Change History (25)

Changed 12 years ago by jmstephensjr@…

Attachment: cctools.txt added

debug output

Changed 12 years ago by jmstephensjr@…

Attachment: installed.txt added

ports installed

comment:1 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: mfeiri@… added
Description: modified (diff)
Owner: changed from macports-tickets@… to jeremyhu@…
Port: cctools added
Summary: cctools 822 Rev 2 fails to buildcctools 822 Rev 2 fails to build: error: redefinition of ‘struct objc_super’

comment:2 Changed 12 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Status: newassigned
/usr/bin/gcc-4.2  -Os -g -Wall -I./../include -I.  -D_MACH_I386_THREAD_STATUS_FPSTATE_LEGACY_FIELD_NAMES_ -D_ARCHITECTURE_I386_FPU_FPSTATE_LEGACY_FIELD_NAMES_ -DEFI_SUPPORT -I/opt/local/include -arch x86_64 -I/opt/local/libexec/llvm-3.0/include  -DNDEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -O3  -g -fno-common -c -o ./print_objc.o print_objc.c
In file included from /usr/include/objc/objc-runtime.h:2,
                 from print_objc.c:34:
/usr/include/objc/message.h:33: error: redefinition of ‘struct objc_super’
/usr/include/objc/message.h:53: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘id’
/usr/include/objc/message.h:54: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘id’
/usr/include/objc/message.h:75: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/objc/message.h:76: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/objc/message.h:99: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘long’
/usr/include/objc/message.h:114: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘id’
/usr/include/objc/message.h:116: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/objc/message.h:135: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘id’
/usr/include/objc/message.h:137: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/objc/message.h:156: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘id’
/usr/include/objc/message.h:157: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
print_objc.c: In function ‘print_objc_segment’:
print_objc.c:638: warning: implicit declaration of function ‘CLS_GETINFO’
print_objc.c:638: error: ‘CLS_META’ undeclared (first use in this function)
print_objc.c:638: error: (Each undeclared identifier is reported only once
print_objc.c:638: error: for each function it appears in.)
print_objc.c:677: error: ‘CLS_CLASS’ undeclared (first use in this function)
make[1]: *** [print_objc.o] Error 1

Please attach the preprocessed source by running:

cd /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_devel_cctools/cctools/work/cctools-822/otool
/usr/bin/gcc-4.2  -Os -g -Wall -I./../include -I.  -D_MACH_I386_THREAD_STATUS_FPSTATE_LEGACY_FIELD_NAMES_ -D_ARCHITECTURE_I386_FPU_FPSTATE_LEGACY_FIELD_NAMES_ -DEFI_SUPPORT -I/opt/local/include -arch x86_64 -I/opt/local/libexec/llvm-3.0/include  -DNDEBUG -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -O3  -g -fno-common -E -o ~/Desktop/print_objc.pp.c print_objc.c

You should attach the file print_objc.pp.c from your Desktop.

comment:3 Changed 12 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Also, if you could try compiling it with clang, it will give better information about the problem, so please give that a try as well.

comment:4 Changed 12 years ago by jmstephensjr@…

As requested, I have attached the file (print_objc.pp.c) generated by gcc-4.2

Changed 12 years ago by jmstephensjr@…

Attachment: print_objc.pp.c added

using gcc-4.2

comment:5 Changed 12 years ago by jmstephensjr@…

As requested, I have attached the file (print_objc.pp.c) generated by clang (ver 1.5)

Changed 12 years ago by jmstephensjr@…

Attachment: clang_print_objc.pp.c added

using clang v1.5

comment:6 Changed 12 years ago by jmstephensjr@…

Another detail... I am using Xcode 3.2.3

comment:7 Changed 12 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Can you attach the error message as generated by clang (not the preprocessed source)?

comment:8 Changed 12 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Ok, so /opt/local/include/objc/objc-api.h and /usr/include/objc/message.h are in conflict.

What port provides /opt/local/include/objc/objc-api.h? Can you please attach both /opt/local/include/objc/objc-api.h and /usr/include/objc/message.h

comment:9 Changed 12 years ago by jmstephensjr@…

RE ownership of objc-api.h:


~ $ port -v provides /opt/local/include/objc/objc-api.h 
/opt/local/include/objc/objc-api.h is provided by: swarm 

~ $ port -v info swarm
swarm @2.3.0, Revision 1 (science) 
Variants: universal 
Description: Swarm is a platform for agent-based models (ABMs). 
Homepage: http://www.swarm.org/ 
Library Dependencies: port:blt, port:tcl, port:tk, port:xpm, port:libffi, port:zlib, port:libpng, port:hdf5-18 
Platforms: darwin 
License: GPL 
Maintainers: cristiano.fontana@pd.infn.it 
Last edited 11 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

Changed 12 years ago by jmstephensjr@…

Attachment: objc-api.h added

from /opt/local/include/objc/

Changed 12 years ago by jmstephensjr@…

Attachment: message.h added

from /usr/include/objc/

comment:10 Changed 12 years ago by jmstephensjr@…

Files objc-api.h and message.h now attached.

Changed 12 years ago by jmstephensjr@…

Attachment: cctools_no_swarm.txt added

removed swarm and tried to compile/install (success)

comment:11 Changed 12 years ago by jmstephensjr@…

FYI. I removed swarm, did a clean --all on swarm and cctools, and reran compile and install on cctools. SUCCESS. I have attached the output from the compile and install of cctools. Notice there are many "implausible timestamps" and many warnings, but it did compile and install.

comment:12 Changed 12 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Cc: jeremyhu@… added
Owner: changed from jeremyhu@… to cristiano.fontana@…
Port: swarm added
Status: assignednew
Summary: cctools 822 Rev 2 fails to build: error: redefinition of ‘struct objc_super’swarm installs headers which conflict with system headers

comment:13 Changed 12 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Thanks, I'm installing swarm now to see if I can figure out more of what is going on, but it looks like a swarm bug.

comment:14 Changed 12 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Yeah, this is definitely a swarm bug. It's installing headers from gcc's objc runtime. This is clearly wrong, and I highly doubt that anything built against it will even work with the OSX ObjC runtime.

comment:15 Changed 12 years ago by jeremyhu (Jeremy Huddleston Sequoia)

swarm doesn't even build for me on SL (XCode 4.2), Lion (XCode 4.3), or ML.

comment:16 Changed 12 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Resolution: fixed
Status: newclosed

comment:17 Changed 12 years ago by jeremyhu (Jeremy Huddleston Sequoia)

Note that it still doesn't build for me except on Leopard, but at least now you won't shoot yourself in the foot with bad ObjC runtime headers from a rogue port.

comment:18 Changed 12 years ago by jmstephensjr@…

Many thanks.

-- JMS

Note: See TracTickets for help on using tickets.