Opened 14 years ago

Closed 13 years ago

#23303 closed defect (wontfix)

procfs fails to compile under Snow Leopard

Reported by: hans.ekkehard.plesser@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 1.8.2
Keywords: Cc: dj_mook@…, mf2k (Frank Schima)
Port: procfs

Description

procfs fails to compile under Snow Leopard (OSX 10.6) with several errors in procfs.cc. I get the following error messages:

DEBUG: Assembled command: 'cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_fuse_procfs/work/procfs-2.0" && /usr/bin/make -j2 all'
g++ -c -Wall -D_FILE_OFFSET_BITS=64 -D__FreeBSD__=10 -O -g -isysroot /Developer/SDKs/MacOSX10.5.sdk -I/opt/local/include -o procfs.o procfs.cc
procfs.cc: In function 'kern_return_t sms_getOrientation_hardware_apple(MotionSensorData_t*)':
procfs.cc:103: error: 'IOConnectMethodStructureIStructureO' was not declared in this scope
procfs.cc: In function 'int procfs_open_proc__windows__identify(procfs_dispatcher_entry*, const char**, const char*, fuse_file_info*)':
procfs.cc:1234: error: jump to label 'bail'
procfs.cc:1226: error:   from here
procfs.cc:1228: error:   crosses initialization of 'int npid'
procfs.cc: In function 'int procfs_read_default_file_finder_info(procfs_dispatcher_entry*, const char**, char*, size_t, off_t, fuse_file_info*)':
procfs.cc:1918: warning: comparison between signed and unsigned integer expressions
procfs.cc: In function 'int procfs_read_system__firmware__variables(procfs_dispatcher_entry*, const char**, char*, size_t, off_t, fuse_file_info*)':
procfs.cc:1950: warning: comparison between signed and unsigned integer expressions
procfs.cc:1955: error: jump to label 'done'
procfs.cc:1944: error:   from here
procfs.cc:1947: error:   crosses initialization of 'const UInt8* tmpbuf'

The complete debugging output is attached. My system is a fresh install with all current updates, i.e. OSX 10.6.2 and XCode 3.2.1.

One thing I am a bit surprised about is that procfs seems to be built using MacOSX10.5.sdk.

Attachments (2)

procfs.log (29.1 KB) - added by hans.ekkehard.plesser@… 14 years ago.
Debug output of failed procfs compilation
port_installed.txt (3.6 KB) - added by hans.ekkehard.plesser@… 14 years ago.
List of installed MacPorts software

Download all attachments as: .zip

Change History (8)

Changed 14 years ago by hans.ekkehard.plesser@…

Attachment: procfs.log added

Debug output of failed procfs compilation

Changed 14 years ago by hans.ekkehard.plesser@…

Attachment: port_installed.txt added

List of installed MacPorts software

comment:1 Changed 14 years ago by jmroot (Joshua Root)

Owner: changed from macports-tickets@… to eridius@…

Please remember to cc the maintainer.

comment:2 Changed 14 years ago by dj_mook@…

Cc: dj_mook@… added

Cc Me!

comment:3 Changed 14 years ago by jmroot (Joshua Root)

Owner: changed from eridius@… to macports-tickets@…

comment:4 Changed 14 years ago by hans.ekkehard.plesser@…

This error persists under OSX 10.6.4 with XCode 3.2.3, MacPorts version 1.9.1 and procfs version 2.0.

I have identified the following issues:

  • The Makefile for procfs has g++ hardcoded. Thus, procfs is compiled with the currently active compiler, not with the MacPorts default compiler as it should.
  • procfs code compiles only if I select g++ 4.0.1. With 4.2.1 (which should be used according to Macports rules) or 4.4 (which I commonly use), several issues occur:
    • g++ 4.4 barfs at -arch options and does not compile anything;
    • g++ 4.2 does not accept goto instructions crossing variable initializations (in functions OPEN_HANDLER(proc__windows__identify) and READ_HANDLER(system__firmware__variables)
    • the system calls IOConnectMethodStructureIStructureO() and IOConnectMethodScalarIScalarO() are not known when using g++ 4.2, even with the 10.5 SDK; they were deprecated for 10.5 and have been removed from 10.6, see Apple Developer Documentation; they are replaced by IOConnectCallStructMethod() and IOConnectCallScalarMethod(), but I feel out of my depth here and have not tried to adapt the code.
  • Using g++ 4.0.1, compilation goes through, but the resulting code cannot be linked against pcre, which has been built (properly) using 4.2.1.

I hope someone who knows more about MacPorts and OSX internals can fix the Makefiles/Portfile to respect MacPorts conventions about using the default system compiler (ie 4.2.1 for 10.6) and fix those system calls.

comment:5 Changed 13 years ago by mf2k (Frank Schima)

Cc: macsforever2000@… added

Cc Me!

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

Resolution: wontfix
Status: newclosed

This port was deleted in r83482.

Note: See TracTickets for help on using tickets.