Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#6177 closed bug (fixed)

Obsolete option -I- used

Reported by: Karvjorm Owned by: nobody
Priority: normal Milestone: R1
Component: - General Version: R1/alpha2
Keywords: obsolete option -I- Cc: Karvjorm
Blocked By: Blocking:
Has a Patch: no Platform: All

Description

When I tried to build several test applications, I got the following warning: "cc1plus: note: obsolete option -I- used, please use -iquote instead" Revision: 37152

Change History (17)

comment:1 by stippi, 9 years ago

The fix most likely needs to happen in the makefile-engine (needs to distinguish between GCC2 and GCC4). See /boot/develop/etc. The makefile-engine gets installed from an OptionalPackage.

in reply to:  1 comment:2 by Karvjorm, 9 years ago

Replying to stippi:

The fix most likely needs to happen in the makefile-engine (needs to distinguish between GCC2 and GCC4). See /boot/develop/etc. The makefile-engine gets installed from an OptionalPackage.

No idea how to make it. I tried "installoptionalpackage makefile-engine" but the result was only "To be installed:" Editing (replacing -I- with -iquote) in /boot/develop/etc/makefile-engine" did not helped either.

comment:3 by anevilyak, 9 years ago

It would help to know more specifically what you were trying to build. Were these apps in the haiku tree, something of your own, something downloaded from haikuware, ... ?

in reply to:  3 comment:4 by Karvjorm, 9 years ago

Replying to anevilyak:

It would help to know more specifically what you were trying to build. Were these apps in the haiku tree, something of your own, something downloaded from haikuware, ... ?

For example:

src/tests/system/libroot/os/
src/kits/support/
src/apps/3dmov/

I have used "jam -q" command to build but with no success.

comment:5 by siarzhuk, 9 years ago

This is not an error, but compatibility warning - you can just ignore it. This option is a "separator" between local and system include paths and it is treated differently between gcc2.x and gcc4.x versions. So if you have compiled your sources - there is nothing to trouble about. ;-)

PS: Anyway, this issue should be fixed in the future.

in reply to:  1 comment:6 by siarzhuk, 9 years ago

Replying to stippi:

The fix most likely needs to happen in the makefile-engine (needs to distinguish between GCC2 and GCC4). See /boot/develop/etc. The makefile-engine gets installed from an OptionalPackage.

Hallo Stephan, some time ago I have idea to separate OBJ directories in makefile-engine for gcc2 and gcc4 versions - just to prevent link errors during switching the platform compiler.

I have used following command to extract base version of compiler:

GCC_VER=gcc$(word 1, $(subst -, , $(subst ., , $(shell gcc -dumpversion))))

this compose "gcc2" and "gcc4" strings correspondently. In case this command looks reasonably "universal" I can add it to our makefile-engine with corresponding changes regarding -iquote.

As far as I remember the "-I-" and "-iquote" options have a bit different behavior - but I need to try now to "refresh my mind" about this problem. :)

in reply to:  5 comment:7 by Karvjorm, 9 years ago

Replying to siarzhuk:

This is not an error, but compatibility warning - you can just ignore it. This option is a "separator" between local and system include paths and it is treated differently between gcc2.x and gcc4.x versions. So if you have compiled your sources - there is nothing to trouble about. ;-)

PS: Anyway, this issue should be fixed in the future.

OK, thanks. Then I try to study the following error messages to find reason why my build fails.

Link ../../../../generated/objects/haiku_host/x86/release/tools/settype 

rm -f "../../../../generated/objects/haiku_host/x86/release/tools/settype"
gcc  -o "../../../../generated/objects/haiku_host/x86/release/tools/settype"
"../../../../generated/objects/haiku_host/x86/release/tools/settype.o" \
 -lbe -lstdc++.r4  \


...failed Link ../../../../generated/objects/haiku_host/x86/release/tools/settype ...
...skipped RAWTranslator for lack of <build>settype...
...failed updating 1 target(s)...
...skipped 1 target(s)...

comment:8 by stippi, 9 years ago

Karvjorm, your build fails because you have configured your Haiku tree while GCC2 was your active compiler and now you are trying to compile with GCC4 without having re-run configure. Could that be the case? It would explain everything.

in reply to:  8 comment:9 by Karvjorm, 9 years ago

Replying to stippi:

Karvjorm, your build fails because you have configured your Haiku tree while GCC2 was your active compiler and now you are trying to compile with GCC4 without having re-run configure. Could that be the case? It would explain everything.

OK, that could probably be the case. I should do ./configure in svn root then?

comment:10 by siarzhuk, 9 years ago

This issue was fixed for makefile-engine in hrev37174. Does Jamfile-engine also affected by this? In opposite case this ticket can be closed, IMO.

in reply to:  10 comment:11 by Karvjorm, 9 years ago

Replying to siarzhuk:

This issue was fixed for makefile-engine in hrev37174. Does Jamfile-engine also affected by this? In opposite case this ticket can be closed, IMO.

I don't know about Jamefile-engine, but my environment is still broken. I made ./configure --target=haiku in svn root and cleared a part of generated .o files to be on the safe side but I will still receive the following error message:

/Blank_BFS/haiku/src/add-ons/translators/raw> jam -q
...patience...
...patience...
...patience...
...patience...
...patience...
...patience...
...patience...
...patience...
...found 8809 target(s)...
...updating 335 target(s)...
Link ../../../../generated/objects/haiku/x86/release/kits/libbe.so 
../../../../generated/objects/haiku/x86/release/libs/icon/libicon.a(GradientTransformable.o): In function `BPrivate::Icon::Gradient::FitToBounds(BRect const&)':
GradientTransformable.cpp:(.text+0xf1): undefined reference to `agg::trans_affine::rect_to_parl(double, double, double, double, double const*)'
GradientTransformable.cpp:(.text+0x101): undefined reference to `agg::trans_affine::multiply(agg::trans_affine const&)'
../../../../generated/objects/haiku/x86/release/libs/icon/libicon.a(Transformable.o): In function `BPrivate::Icon::Transformable::ScaleBy(BPoint, double, double)':
Transformable.cpp:(.text+0x393): undefined reference to `agg::trans_affine::multiply(agg::trans_affine const&)'
Transformable.cpp:(.text+0x3c3): undefined reference to `agg::trans_affine::multiply(agg::trans_affine const&)'
Transformable.cpp:(.text+0x400): undefined reference to `agg::trans_affine::multiply(agg::trans_affine const&)'
../../../../generated/objects/haiku/x86/release/libs/icon/libicon.a(Transformable.o): In function `BPrivate::Icon::Transformable::TranslateBy(BPoint)':
Transformable.cpp:(.text+0x47e): undefined reference to `agg::trans_affine::multiply(agg::trans_affine const&)'
../../../../generated/objects/haiku/x86/release/libs/icon/libicon.a(Transformable.o):Transformable.cpp:(.text+0x539): more undefined references to `agg::trans_affine::multiply(agg::trans_affine const&)' follow
../../../../generated/objects/haiku/x86/release/libs/icon/libicon.a(Transformable.o): In function `BPrivate::Icon::Transformable::operator=(BPrivate::Icon::Transformable const&)':
Transformable.cpp:(.text+0xbf1): undefined reference to `agg::trans_affine::reset()'
Transformable.cpp:(.text+0xc00): undefined reference to `agg::trans_affine::multiply(agg::trans_affine const&)'
../../../../generated/objects/haiku/x86/release/libs/icon/libicon.a(Transformable.o): In function `BPrivate::Icon::Transformable::Multiply(BPrivate::Icon::Transformable const&)':
Transformable.cpp:(.text+0xee3): undefined reference to `agg::trans_affine::multiply(agg::trans_affine const&)'
../../../../generated/objects/haiku/x86/release/libs/icon/libicon.a(Transformable.o): In function `BPrivate::Icon::Transformable::Invert()':
Transformable.cpp:(.text+0xf2c): undefined reference to `agg::trans_affine::invert()'
../../../../generated/objects/haiku/x86/release/libs/icon/libicon.a(Transformable.o): In function `BPrivate::Icon::Transformable::Reset()':
Transformable.cpp:(.text+0xf7c): undefined reference to `agg::trans_affine::reset()'
../../../../generated/objects/haiku/x86/release/libs/icon/libicon.a(AffineTransformer.o): In function `BPrivate::Icon::AffineTransformer::Clone(BPrivate::Icon::VertexSource&) const':
AffineTransformer.cpp:(.text+0x456): undefined reference to `agg::trans_affine::multiply(agg::trans_affine const&)'
../../../../generated/objects/haiku/x86/release/libs/icon/libicon.a(IconRenderer.o): In function `BPrivate::Icon::IconRenderer::SetScale(double)':
IconRenderer.cpp:(.text+0x1f8): undefined reference to `agg::trans_affine::reset()'
IconRenderer.cpp:(.text+0x221): undefined reference to `agg::trans_affine::multiply(agg::trans_affine const&)'
../../../../generated/objects/haiku/x86/release/libs/icon/libicon.a(IconRenderer.o): In function `BPrivate::Icon::IconRenderer::_Render(BRect const&)':
IconRenderer.cpp:(.text+0x1b5e): undefined reference to `agg::trans_affine::multiply(agg::trans_affine const&)'
IconRenderer.cpp:(.text+0x1c1c): undefined reference to `agg::trans_affine::multiply(agg::trans_affine const&)'
IconRenderer.cpp:(.text+0x1c2e): undefined reference to `agg::trans_affine::invert()'
IconRenderer.cpp:(.text+0x1ebf): undefined reference to `agg::trans_affine::multiply(agg::trans_affine const&)'
IconRenderer.cpp:(.text+0x1ed1): undefined reference to `agg::trans_affine::invert()'
../../../../generated/objects/haiku/x86/release/libs/icon/libicon.a(IconRenderer.o): In function `void BPrivate::Icon::IconRenderer::StyleHandler::_GenerateGradient<agg::gradient_sqrt_xy>(agg::rgba8*, int, int, unsigned int, agg::gradient_sqrt_xy, long, long, agg::rgba8 const*, agg::trans_affine&)':
IconRenderer.cpp:(.text._ZN8BPrivate4Icon12IconRenderer12StyleHandler17_GenerateGradientIN3agg16gradient_sqrt_xyEEEvPNS4_5rgba8EiijT_llPKS6_RNS4_12trans_affineE[void BPrivate::Icon::IconRenderer::StyleHandler::_GenerateGradient<agg::gradient_sqrt_xy>(agg::rgba8*, int, int, unsigned int, agg::gradient_sqrt_xy, long, long, agg::rgba8 const*, agg::trans_affine&)]+0x282): undefined reference to `agg::g_elder_bit_table'
IconRenderer.cpp:(.text._ZN8BPrivate4Icon12IconRenderer12StyleHandler17_GenerateGradientIN3agg16gradient_sqrt_xyEEEvPNS4_5rgba8EiijT_llPKS6_RNS4_12trans_affineE[void BPrivate::Icon::IconRenderer::StyleHandler::_GenerateGradient<agg::gradient_sqrt_xy>(agg::rgba8*, int, int, unsigned int, agg::gradient_sqrt_xy, long, long, agg::rgba8 const*, agg::trans_affine&)]+0x2b1): undefined reference to `agg::g_sqrt_table'
IconRenderer.cpp:(.text._ZN8BPrivate4Icon12IconRenderer12StyleHandler17_GenerateGradientIN3agg16gradient_sqrt_xyEEEvPNS4_5rgba8EiijT_llPKS6_RNS4_12trans_affineE[void BPrivate::Icon::IconRenderer::StyleHandler::_GenerateGradient<agg::gradient_sqrt_xy>(agg::rgba8*, int, int, unsigned int, agg::gradient_sqrt_xy, long, long, agg::rgba8 const*, agg::trans_affine&)]+0x3d7): undefined reference to `agg::g_elder_bit_table'
IconRenderer.cpp:(.text._ZN8BPrivate4Icon12IconRenderer12StyleHandler17_GenerateGradientIN3agg16gradient_sqrt_xyEEEvPNS4_5rgba8EiijT_llPKS6_RNS4_12trans_affineE[void BPrivate::Icon::IconRenderer::StyleHandler::_GenerateGradient<agg::gradient_sqrt_xy>(agg::rgba8*, int, int, unsigned int, agg::gradient_sqrt_xy, long, long, agg::rgba8 const*, agg::trans_affine&)]+0x3f2): undefined reference to `agg::g_elder_bit_table'
IconRenderer.cpp:(.text._ZN8BPrivate4Icon12IconRenderer12StyleHandler17_GenerateGradientIN3agg16gradient_sqrt_xyEEEvPNS4_5rgba8EiijT_llPKS6_RNS4_12trans_affineE[void BPrivate::Icon::IconRenderer::StyleHandler::_GenerateGradient<agg::gradient_sqrt_xy>(agg::rgba8*, int, int, unsigned int, agg::gradient_sqrt_xy, long, long, agg::rgba8 const*, agg::trans_affine&)]+0x412): undefined reference to `agg::g_elder_bit_table'
../../../../generated/objects/haiku/x86/release/libs/icon/libicon.a(IconRenderer.o): In function `void BPrivate::Icon::IconRenderer::StyleHandler::_GenerateGradient<agg::gradient_radial>(agg::rgba8*, int, int, unsigned int, agg::gradient_radial, long, long, agg::rgba8 const*, agg::trans_affine&)':
IconRenderer.cpp:(.text._ZN8BPrivate4Icon12IconRenderer12StyleHandler17_GenerateGradientIN3agg15gradient_radialEEEvPNS4_5rgba8EiijT_llPKS6_RNS4_12trans_affineE[void BPrivate::Icon::IconRenderer::StyleHandler::_GenerateGradient<agg::gradient_radial>(agg::rgba8*, int, int, unsigned int, agg::gradient_radial, long, long, agg::rgba8 const*, agg::trans_affine&)]+0x273): undefined reference to `agg::g_elder_bit_table'
IconRenderer.cpp:(.text._ZN8BPrivate4Icon12IconRenderer12StyleHandler17_GenerateGradientIN3agg15gradient_radialEEEvPNS4_5rgba8EiijT_llPKS6_RNS4_12trans_affineE[void BPrivate::Icon::IconRenderer::StyleHandler::_GenerateGradient<agg::gradient_radial>(agg::rgba8*, int, int, unsigned int, agg::gradient_radial, long, long, agg::rgba8 const*, agg::trans_affine&)]+0x2a4): undefined reference to `agg::g_sqrt_table'
IconRenderer.cpp:(.text._ZN8BPrivate4Icon12IconRenderer12StyleHandler17_GenerateGradientIN3agg15gradient_radialEEEvPNS4_5rgba8EiijT_llPKS6_RNS4_12trans_affineE[void BPrivate::Icon::IconRenderer::StyleHandler::_GenerateGradient<agg::gradient_radial>(agg::rgba8*, int, int, unsigned int, agg::gradient_radial, long, long, agg::rgba8 const*, agg::trans_affine&)]+0x39b): undefined reference to `agg::g_elder_bit_table'
IconRenderer.cpp:(.text._ZN8BPrivate4Icon12IconRenderer12StyleHandler17_GenerateGradientIN3agg15gradient_radialEEEvPNS4_5rgba8EiijT_llPKS6_RNS4_12trans_affineE[void BPrivate::Icon::IconRenderer::StyleHandler::_GenerateGradient<agg::gradient_radial>(agg::rgba8*, int, int, unsigned int, agg::gradient_radial, long, long, agg::rgba8 const*, agg::trans_affine&)]+0x3b9): undefined reference to `agg::g_elder_bit_table'
IconRenderer.cpp:(.text._ZN8BPrivate4Icon12IconRenderer12StyleHandler17_GenerateGradientIN3agg15gradient_radialEEEvPNS4_5rgba8EiijT_llPKS6_RNS4_12trans_affineE[void BPrivate::Icon::IconRenderer::StyleHandler::_GenerateGradient<agg::gradient_radial>(agg::rgba8*, int, int, unsigned int, agg::gradient_radial, long, long, agg::rgba8 const*, agg::trans_affine&)]+0x3da): undefined reference to `agg::g_elder_bit_table'
collect2: ld returned 1 exit status

rm -f "../../../../generated/objects/haiku/x86/release/kits/libbe.so"
gcc -fno-strict-aliasing -fno-tree-vrp -Xlinker --no-undefined -nostart -Xlinker -soname="libbe.so" -nostdlib -Xlinker --no-undefined -o "../../../../generated/objects/haiku/x86/release/kits/libbe.so"  "../../../../generated/objects/haiku/x86/release/system/glue/arch/x86/crti.o" "/boot/develop/abi/x86/gcc4/tools/gcc-4.3.3-haiku-100425/lib/gcc/i586-pc-haiku/4.3.3/crtbegin.o" "../../../../generated/objects/haiku/x86/release/system/glue/init_term_dyn.o" "../../../../generated/objects/haiku/x86/release/kits/LocaleBackend.o" \
"../../../../generated/objects/haiku/x86/release/kits/app/app_kit.o" "../../../../generated/objects/haiku/x86/release/kits/interface/interface_kit.o" "../../../../generated/objects/haiku/x86/release/kits/storage/storage_kit.o" "../../../../generated/objects/haiku/x86/release/kits/support/support_kit.o" "../../../../generated/objects/haiku/x86/release/libs/icon/libicon.a" "../../../../generated/objects/haiku/x86/release/libs/agg/libagg.a" "../../../../generated/objects/haiku/x86/release/system/libroot/libroot.so" "/boot/system/lib/libstdc++.so" "../../../../generated/objects/haiku/x86/release/system/libroot/libroot.so"  "/boot/develop/abi/x86/gcc4/tools/gcc-4.3.3-haiku-100425/lib/gcc/i586-pc-haiku/4.3.3/crtend.o" "../../../../generated/objects/haiku/x86/release/system/glue/arch/x86/crtn.o" \
-Wl,--version-script,../../../kits/libbe_versions

...failed Link ../../../../generated/objects/haiku/x86/release/kits/libbe.so ...
...skipped RAWTranslator for lack of libbe.so...
...failed updating 1 target(s)...
...skipped 1 target(s)...
/Blank_BFS/haiku/src/add-ons/translators/raw>

in reply to:  description ; comment:12 by siarzhuk, 9 years ago

Well, starting from the very beginning:

Replying to Karvjorm:

When I tried to build several test applications, I got the following warning: "cc1plus: note: obsolete option -I- used, please use -iquote instead" Revision: 37152

Which "test application" do you meant here?

Please differentiate two cases:

1) Normal build environment - when you trying to compile some 3rd-party or your private project that is not belong to Haiku source tree. Such project usually uses it's own build rules from the local Makefile/ Jamfile or something like this. Many BeOS/Haiku source projects are including so known "engines": /boot/develop/etc/makefile-engine or /boot/develop/etc/Jamfile-engine for make and jam builds correspondently. Those engines minimize size and complexity of project's Makefiles or Jamfiles.

2) "System build environment" - this is the special case of building whole system with "jam" utility that uses lot of jam scripts from ./build/jam/ folder.

My fixes were applied to makefile-engine - so they can affect only on "case 1) builds". May be your "test applications" are using such makefiles? In this case that "-I- obsolete" warning should not bother you anymore. In opposite case you should localize the problem by trying to find which module produce such warning during compilation.

But now...

Replying to Karvjorm:

I don't know about Jamefile-engine, but my environment is still broken. I made ./configure --target=haiku in svn root and cleared a part of generated .o files to be on the safe side but I will still receive the following error message:

Link ../../../../generated/objects/haiku/x86/release/kits/libbe.so 
../../../../generated/objects/haiku/x86/release/libs/icon/libicon.a(GradientTransformable.o): In function `BPrivate::Icon::Gradient::FitToBounds(BRect const&)':
GradientTransformable.cpp:(.text+0xf1): undefined reference to `agg::trans_affine::rect_to_parl(double, double, double, double, double const*)'

This problem has nothing to do with original description of this bug. Now you observing linking problem not a compile-time problem. Unfortunately, "jam" utility looks like not strong enough to find out all cases of outdated dependencies in all possible situations. Looks like some object modules under your "generated" directory were not rebuild automatically. In such situation I usually do the following: 1) go to folder "generated" and delete or move away all files and folders from there excluding "download" folder. 2) go back to the root of svn tree, perform configure and try to build the system from the scratch. In case this doesn't help - current revision may be broken. :-(

Good luck!

in reply to:  12 ; comment:13 by Karvjorm, 9 years ago

Replying to siarzhuk:

Well, starting from the very beginning:

Replying to Karvjorm:

When I tried to build several test applications, I got the following warning: "cc1plus: note: obsolete option -I- used, please use -iquote instead" Revision: 37152

Which "test application" do you meant here?

Hi, my reply is in comment:4 above

Replying to Karvjorm:

I don't know about Jamefile-engine, but my environment is still broken. I made ./configure --target=haiku in svn root and cleared a part of generated .o files to be on the safe side but I will still receive the following error message:

Link ../../../../generated/objects/haiku/x86/release/kits/libbe.so 
../../../../generated/objects/haiku/x86/release/libs/icon/libicon.a(GradientTransformable.o): In function `BPrivate::Icon::Gradient::FitToBounds(BRect const&)':
GradientTransformable.cpp:(.text+0xf1): undefined reference to `agg::trans_affine::rect_to_parl(double, double, double, double, double const*)'

This problem has nothing to do with original description of this bug.

At the beginning I did not understand what was the problem, so I picked the first error message, though it was only a note and not an error message. My mistake, sorry.

Now you observing linking problem not a compile-time problem. Unfortunately, "jam" utility looks like not strong enough to find out all cases of outdated dependencies in all possible situations. Looks like some object modules under your "generated" directory were not rebuild automatically. In such situation I usually do the following: 1) go to folder "generated" and delete or move away all files and folders from there excluding "download" folder. 2) go back to the root of svn tree, perform configure and try to build the system from the scratch. In case this doesn't help - current revision may be broken. :-(

Good luck!

I have already done this several times, but it is still broken. I have done svn cleanup and svn update and the linking problem still continues. And it is now complaining about some header file, I suppose. And I can't pick the point of the error.

in reply to:  13 ; comment:14 by siarzhuk, 9 years ago

Replying to Karvjorm:

I have already done this several times, but it is still broken. I have done svn cleanup and svn update and the linking problem still continues. And it is now complaining about some header file, I suppose. And I can't pick the point of the error.

BTW, svn cleanup does nothing with objects files. To perform the object files cleanup you have to run "jam clean".

Have you tried to remove all files and folders in "generated" sub-folder? You have selected only my citation about re-configure - but this have no much sense without removing all machine generated files in "generated" that are looking like stuck in some inconsistent state.

in reply to:  14 comment:15 by Karvjorm, 9 years ago

Replying to siarzhuk:

Replying to Karvjorm:

I have already done this several times, but it is still broken. I have done svn cleanup and svn update and the linking problem still continues. And it is now complaining about some header file, I suppose. And I can't pick the point of the error.

BTW, svn cleanup does nothing with objects files. To perform the object files cleanup you have to run "jam clean".

Have you tried to remove all files and folders in "generated" sub-folder? You have selected only my citation about re-configure - but this have no much sense without removing all machine generated files in "generated" that are looking like stuck in some inconsistent state.

Thanks, now I made "rm -r *" in generated/objects and after that "jam -q" in svn root. After it building started to work (except it take so much time, and it is better to sleep some hours before continue :) )

This can be closed now.

comment:16 by anevilyak, 9 years ago

Resolution: fixed
Status: newclosed

comment:17 by stippi, 9 years ago

Just to note, the problem was caused by configuring with one compiler, then later building with another compiler, which brought the object files into inconsistent state (mixed gcc2 and gcc4 object files which did not link consequently). Jam is not at all to blame and neither is SVN. :-)

Note: See TracTickets for help on using tickets.