bugGNUstep - Bugs: bug #34875, After switching to gcc 4.6 base...

 
 

You are not allowed to post comments on this tracker with your current authentication level.

bug #34875: After switching to gcc 4.6 base configure fails

Submitted by:  Fred Kiefer <FredKiefer>
Submitted on:  Mon 21 Nov 2011 09:04:39 PM UTC  
 
Category: Base/FoundationSeverity: 2 - Minor
Item Group: BugStatus: Fixed
Privacy: PublicAssigned to: None
Open/Closed: Closed

Thu 19 Jan 2012 09:26:36 AM UTC, comment #1:

Really this is a variation of a more generic problemof not uninstalling old obj runtime stuff before installing the new stuff ... picking up the wrong version is going to be a possible issue whenever you install more than one runtime on a machine.

That being said, I guess this particular case is more likely than most, and should be avoidable (as you say) by making sure the compatibility headers aren't used by the configure process.

I've updated things to try to do that (svn trunk).

Richard Frith-Macdonald <CaS>
Project Member
Mon 21 Nov 2011 09:04:39 PM UTC, original submission:

I upgrades OpenSuse to 12.1 which comes with gcc 4.6.2 and now configures fails to detect Objective-C support with the following error in config.log:

configure:12635: checking whether objc really works
configure:12665: gcc -o conftest -g -O2 -I/usr/GNUstep/System/Library/Headers -I/usr/GNUstep/Local/Library/Headers -I/usr/GNUstep/Local/Library/Headers -fgnu-runtime -x objective-c -L/usr/GNUstep/System/Library/Libraries -L/usr/GNUstep/Local/Library/Libraries -L/usr/GNUstep/Local/Library/Libraries conftest.c -lrt -ldl -lpthread -rdynamic -pthread -shared-libgcc -fexceptions -fgnu-runtime -L/root/GNUstep/Library/Libraries -L/usr/GNUstep/Local/Library/Libraries -L/usr/GNUstep/System/Library/Libraries -lpthread -lobjc -lm -lpthread >&5
In file included from /usr/GNUstep/System/Library/Headers/objc/runtime.h:1:0,
from ./config/objc-common.g:7,
from ./config/config.objc.m:2,
from conftest.c:97:
/usr/GNUstep/System/Library/Headers/ObjectiveC2/runtime.h:126:1: error: unknown type name 'Method_t'
/usr/GNUstep/System/Library/Headers/ObjectiveC2/runtime.h:135:1: error: unknown type name 'Method_t'
/usr/GNUstep/System/Library/Headers/ObjectiveC2/runtime.h:139:1: error: unknown type name 'Method_t'
/usr/GNUstep/System/Library/Headers/ObjectiveC2/runtime.h:185:32: error: unknown type name 'Method_t'
/usr/GNUstep/System/Library/Headers/ObjectiveC2/runtime.h:187:30: error: unknown type name 'Method_t'
/usr/GNUstep/System/Library/Headers/ObjectiveC2/runtime.h:189:37: error: unknown type name 'Method_t'
/usr/GNUstep/System/Library/Headers/ObjectiveC2/runtime.h:189:48: error: unknown type name 'Method_t'
/usr/GNUstep/System/Library/Headers/ObjectiveC2/runtime.h:191:29: error: unknown type name 'Method_t'
/usr/GNUstep/System/Library/Headers/ObjectiveC2/runtime.h:193:30: error: unknown type name 'Method_t'
/usr/GNUstep/System/Library/Headers/ObjectiveC2/runtime.h:195:20: error: unknown type name 'Method_t'
/usr/GNUstep/System/Library/Headers/ObjectiveC2/runtime.h:197:38: error: unknown type name 'Method_t'
/usr/GNUstep/System/Library/Headers/ObjectiveC2/runtime.h:199:27: error: unknown type name 'Method_t'
/usr/GNUstep/System/Library/Headers/ObjectiveC2/runtime.h:201:37: error: unknown type name 'Method_t'
/usr/GNUstep/System/Library/Headers/ObjectiveC2/runtime.h:203:30: error: unknown type name 'Method_t'
In file included from ./config/config.objc.m:2:0,
from conftest.c:97:
./config/objc-common.g:23:1: warning: cannot find interface declaration for 'NXConstantString' [enabled by default]
configure:12669: $? = 1
configure: program exited with status 1

The first thing I notices was that the link to objc was wrong on the system:
ls -l /usr/include/objc
lrwxrwxrwx 1 root root 49 14. Feb 2011 /usr/include/objc -> /usr/lib64/gcc/x86_64-suse-linux/4.5/include/objc

But changing this to the new objc directory didn't help. To me the problem now seems to be that the compiler picks up the runtime.h file from the previous configuration with gcc 4.5 which points to the ObjectiveC2/runtime.h instead of using the one that comes with the compiler (or rather libobjc). I think we should not include any of the GNUstep Header installation directories here. This may either be a GNUstep make error or a base error, not sure which.

Removing the file /usr/GNUstep/System/Library/Headers/ObjectiveC2/runtime.h solves the problem.

As an add-on, I see this warning a lot in the config.log file with gcc 4.6. Perhaps we need to change the check for an old runtime?

./config/objc-common.g:23:1: warning: cannot find interface declaration for 'NXConstantString' [enabled by default]

Fred Kiefer <FredKiefer>
Project Member

 

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by rmottola (Updated the item)
  • -unavailable- added by CaS (Posted a comment)
  • -unavailable- added by FredKiefer (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 3 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Tue 15 Jan 2013 10:19:50 PM UTCrmottolaOpen/ClosedIn Test=>Closed
    Thu 19 Jan 2012 09:26:36 AM UTCCaSOpen/ClosedOpen=>In Test
    Thu 19 Jan 2012 09:26:35 AM UTCCaSStatusNone=>Fixed

    Back to the top


    Powered by Savane 3.1-cleanup1