<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "http://bugs.gentoo.org/bugzilla.dtd">

<bugzilla version="2.22.7"
          urlbase="http://bugs.gentoo.org/"
          maintainer="bugzilla@gentoo.org"
>

    <bug>
          <bug_id>215085</bug_id>
          
          <creation_ts>2008-03-27 17:43 0000</creation_ts>
          <short_desc>dev-games/ogre - Fix --as-needed with cg</short_desc>
          <delta_ts>2008-04-09 17:16:58 0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Gentoo Linux</product>
          <component>Games</component>
          <version>unspecified</version>
          <rep_platform>All</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          <bug_file_loc>http://www.ogre3d.org</bug_file_loc>
          
          
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>129413</blocked>
          
          <everconfirmed>1</everconfirmed>
          <reporter>chewi@aura-online.co.uk</reporter>
          <assigned_to>games@gentoo.org</assigned_to>
          <cc>Sander.Sweers@gmail.com</cc>

      

      
          <long_desc isprivate="0">
            <who>chewi@aura-online.co.uk</who>
            <bug_when>2008-03-27 17:43:07 0000</bug_when>
            <thetext>Because of the way NVIDIA linked their Cg toolkit, building Ogre with the cg USE flag enabled and -Wl,--as-needed in your LDFLAGS doesn&apos;t work. Here&apos;s a new ebuild that filters the flags.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>chewi@aura-online.co.uk</who>
            <bug_when>2008-03-27 17:44:29 0000</bug_when>
            <thetext>Created an attachment (id=147461)
ogre-1.4.7.ebuild

Probably no point in incrementing the revision number.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>mr_bones_@gentoo.org</who>
            <bug_when>2008-04-08 16:47:40 0000</bug_when>
            <thetext>in portage.  thanks for the bug report and patch.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>Sander.Sweers@gmail.com</who>
            <bug_when>2008-04-08 17:00:42 0000</bug_when>
            <thetext>Filtering --as-needed is just hiding a bug. It should either be left open or fixed.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>mr_bones_@gentoo.org</who>
            <bug_when>2008-04-08 17:04:37 0000</bug_when>
            <thetext>talk is cheap - patches welcome.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>chewi@aura-online.co.uk</who>
            <bug_when>2008-04-08 17:24:18 0000</bug_when>
            <thetext>The command that causes the error is...

gcc -o conftest &lt;CFLAGS&gt; -Wl,--as-needed conftest.c -lCg -lILU -lIL -lpthread -lz -lm -ldl

If you add (or move) -lpthread and -lm before the -Wl,--as-needed option then it works. Maybe you could do some trick with -Wl,--no-as-needed but you&apos;d have to make sure that -Wl,--as-needed is added again afterwards and ONLY when it is wanted. It could be done but it wouldn&apos;t be too pretty.

There are two lines in the configure script that add the -lCg option and they read LIBS=&quot;-lCg $LIBS&quot;. Maybe something could be done with this.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>Sander.Sweers@gmail.com</who>
            <bug_when>2008-04-08 18:43:22 0000</bug_when>
            <thetext>(In reply to comment #4)
&gt; talk is cheap - patches welcome.

Sigh...

(In reply to comment #5)
&gt; The command that causes the error is...
&gt; 
&gt; gcc -o conftest &lt;CFLAGS&gt; -Wl,--as-needed conftest.c -lCg -lILU -lIL -lpthread
&gt; -lz -lm -ldl
&gt; 
&gt; If you add (or move) -lpthread and -lm before the -Wl,--as-needed option then
&gt; it works. 
&gt; 
&gt; There are two lines in the configure script that add the -lCg option and they
&gt; read LIBS=&quot;-lCg $LIBS&quot;. Maybe something could be done with this.

Probably changing the linking order from LIBS=&quot;-lCg $LIBS&quot; to LIBS=&quot;$LIBS -lCg&quot; will fix it. But I am not able to test that for another week. Could you have a go at it?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>chewi@aura-online.co.uk</who>
            <bug_when>2008-04-08 19:12:36 0000</bug_when>
            <thetext>I tried putting -lCg in various places before but that didn&apos;t work. It makes sense that you have to move -lm and -lpthread because Cg doesn&apos;t reference them when it should and so they must be linked regardless of whether they appear to be needed.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>chewi@aura-online.co.uk</who>
            <bug_when>2008-04-09 17:16:58 0000</bug_when>
            <thetext>Created an attachment (id=149213)
ogre-1.4.7-as-needed.patch

Okay I&apos;ve come up with a very simple patch. We can get away with only modifying the configure test because libm and libpthread are actually &quot;needed&quot; by OGRE itself any other time that libCg is linked. Thanks to the way AC_CHECK_LIB works, it is easy to add extra arguments to the test. Apply this patch before the ce-gui patch. &quot;-Xlinker --no-as-needed&quot; was used rather than &quot;-Wl,--no-as-needed&quot; because the comma confuses autoconf. Sorry for the extra work, Mr Bones!</thetext>
          </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>147461</attachid>
            <date>2008-03-27 17:44 0000</date>
            <desc>ogre-1.4.7.ebuild</desc>
            <filename>ogre-1.4.7.ebuild</filename>
            <type>text/plain</type>
            <data encoding="base64">IyBDb3B5cmlnaHQgMTk5OS0yMDA4IEdlbnRvbyBGb3VuZGF0aW9uCiMgRGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2MgojICRIZWFk
ZXI6ICQKCmluaGVyaXQgZXV0aWxzIGF1dG90b29scyBmbGFnLW8tbWF0aWMKCkRFU0NSSVBUSU9O
PSJPYmplY3Qtb3JpZW50ZWQgR3JhcGhpY3MgUmVuZGVyaW5nIEVuZ2luZSIKSE9NRVBBR0U9Imh0
dHA6Ly93d3cub2dyZTNkLm9yZy8iClNSQ19VUkk9Im1pcnJvcjovL3NvdXJjZWZvcmdlL29ncmUv
b2dyZS1saW51eF9vc3gtdiR7UFYvLy4vLX0udGFyLmJ6MiIKCkxJQ0VOU0U9IkxHUEwtMi4xIgpT
TE9UPSIwIgpLRVlXT1JEUz0ifmFtZDY0IH54ODYiCklVU0U9ImRvYyBjZWd1aSBjZyBkZXZpbCBk
b3VibGUtcHJlY2lzaW9uIGV4YW1wbGVzIGd0ayBvcGVuZXhyIHRocmVhZHMiClJFU1RSSUNUPSJ0
ZXN0IiAjMTM5OTA1CgpSREVQRU5EPSJkZXYtbGlicy96emlwbGliCgk+PW1lZGlhLWxpYnMvZnJl
ZXR5cGUtMgoJdmlydHVhbC9vcGVuZ2wKCXZpcnR1YWwvZ2x1Cgl4MTEtbGlicy9saWJYdAoJeDEx
LWxpYnMvbGliWGF3Cgl4MTEtbGlicy9saWJYcmFuZHIKCXgxMS1saWJzL2xpYlgxMQoJY2VndWk/
ICggPj1kZXYtZ2FtZXMvY2VndWktMC41ICkKCWNnPyAoIG1lZGlhLWdmeC9udmlkaWEtY2ctdG9v
bGtpdCApCglkZXZpbD8gKCBtZWRpYS1saWJzL2RldmlsICkKCWd0az8gKCA+PXgxMS1saWJzL2d0
aystMiApCglvcGVuZXhyPyAoIG1lZGlhLWxpYnMvb3BlbmV4ciApCgl0aHJlYWRzPyAoIGRldi1s
aWJzL2Jvb3N0ICkiCkRFUEVORD0iJHtSREVQRU5EfQoJeDExLXByb3RvL3hmODZ2aWRtb2RlcHJv
dG8KCWRldi11dGlsL3BrZ2NvbmZpZyIKClM9JHtXT1JLRElSfS9vZ3JlbmV3Cgpwa2dfc2V0dXAo
KSB7CglpZiB1c2UgdGhyZWFkcyAmJiBoYXNfdmVyc2lvbiAiPGRldi1saWJzL2Jvb3N0LTEuMzQi
ICYmIFwKCQkhIGJ1aWx0X3dpdGhfdXNlIGRldi1saWJzL2Jvb3N0IHRocmVhZHMKCXRoZW4KCQlk
aWUgIlBsZWFzZSBlbWVyZ2UgZGV2LWxpYnMvYm9vc3Qgd2l0aCBVU0U9dGhyZWFkcyIKCWZpCn0K
CnNyY191bnBhY2soKSB7Cgl1bnBhY2sgJHtBfQoJY2QgIiR7U30iCgllY3ZzX2NsZWFuCglpZiB1
c2UgZXhhbXBsZXMgOyB0aGVuCgkJY3AgLXIgU2FtcGxlcyBpbnN0YWxsLWV4YW1wbGVzIHx8IGRp
ZQoJCWZpbmQgaW5zdGFsbC1leGFtcGxlcyBcCgkJCScoJyAtbmFtZSAnTWFrZWZpbGUqJyAtbyAt
bmFtZSBvYmogLW8gXAoJCQkgICAgLW5hbWUgYmluIC1vIC1uYW1lICcqLmNicCcgLW8gLW5hbWUg
JyoudmNwcm9qKicgJyknIFwKCQkJLXByaW50MCB8IHhhcmdzIC0wIHJtIC1yZgoJZmkKCXNlZCAt
aSAnL0NQUFVOSVQvZCcgY29uZmlndXJlLmluIHx8IGRpZSAic2VkIGZhaWxlZCIKCWVwYXRjaCAi
JHtGSUxFU0RJUn0iLyR7UH0tY2VndWkucGF0Y2gKCWVhdXRvcmVjb25mCn0KCnNyY19jb21waWxl
KCkgewoJdXNlIGNnICYmIGZpbHRlci1sZGZsYWdzIC1XbCwtLWFzLW5lZWRlZAoKCWVjb25mIFwK
CQktLWRpc2FibGUtZGVwZW5kZW5jeS10cmFja2luZyBcCgkJLS1kaXNhYmxlLWZyZWVpbWFnZSBc
CgkJLS1kaXNhYmxlLW9ncmUtZGVtb3MgXAoJCS0tZW5hYmxlLXN0YXRpYyBcCgkJLS13aXRoLXBs
YXRmb3JtPUdMWCBcCgkJLS13aXRoLWd1aT0kKHVzZXYgZ3RrIHx8IGVjaG8gWHQpIFwKCQkkKHVz
ZV9lbmFibGUgY2VndWkpIFwKCQkkKHVzZV9lbmFibGUgY2cpIFwKCQkkKHVzZV9lbmFibGUgZGV2
aWwpIFwKCQkkKHVzZV9lbmFibGUgZG91YmxlLXByZWNpc2lvbiBkb3VibGUpIFwKCQkkKHVzZV9l
bmFibGUgb3BlbmV4cikgXAoJCSQodXNlX2VuYWJsZSB0aHJlYWRzIHRocmVhZGluZykgXAoJCXx8
IGRpZQoJZW1ha2UgfHwgZGllICJlbWFrZSBmYWlsZWQiCn0KCnNyY19pbnN0YWxsKCkgewoJZW1h
a2UgREVTVERJUj0iJHtEfSIgaW5zdGFsbCB8fCBkaWUgImVtYWtlIGluc3RhbGwgZmFpbGVkIgoJ
aWYgdXNlIGRvYyA7IHRoZW4KCQlpbnNpbnRvIC91c3Ivc2hhcmUvZG9jLyR7UEZ9L2h0bWwKCQlk
b2lucyAtciBEb2NzLyogfHwgZGllICJkb2lucyBEb2NzIGZhaWxlZCIKCWZpCglpZiB1c2UgZXhh
bXBsZXMgOyB0aGVuCgkJaW5zaW50byAvdXNyL3NoYXJlL2RvYy8ke1BGfS9TYW1wbGVzCgkJZG9p
bnMgLXIgaW5zdGFsbC1leGFtcGxlcy8qIHx8IGRpZSAiZG9pbnMgU2FtcGxlcyBmYWlsZWQiCglm
aQoJZG9kb2MgQVVUSE9SUyBCVUdTIExJTlVYLkRFViBSRUFETUUKfQo=
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149213</attachid>
            <date>2008-04-09 17:16 0000</date>
            <desc>ogre-1.4.7-as-needed.patch</desc>
            <filename>ogre-1.4.7-as-needed.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">LS0tIGFjaW5jbHVkZS5tNC5vcmlnCTIwMDgtMDQtMDkgMTc6NDk6MzAuODQ4OTg3MDAwICswMTAw
CisrKyBhY2luY2x1ZGUubTQJMjAwOC0wNC0wOSAxNzo1MzoyNS42NTIwNjgzNTkgKzAxMDAKQEAg
LTM0MCw3ICszNDAsNyBAQAogCSogLS1kaXNhYmxlLWNnIHRvIHRoaXMgY29uZmlndXJlIHNjcmlw
dCBidXQgdGhpcyBpcyBoaWdobHkgICAgICoKIAkqIGRpc2NvdXJhZ2VkIGFzIHRoaXMgYnJlYWtz
IG1hbnkgb2YgdGhlIGV4YW1wbGVzLiAgICAgICAgICAgICAqCiAJKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKl0pCi0JKQorCSwt
WGxpbmtlciAtLW5vLWFzLW5lZWRlZCkKIGZpCiAKIEFNX0NPTkRJVElPTkFMKEJVSUxEX0NHUExV
R0lOLCB0ZXN0IHgkYnVpbGRfY2cgPSB4eWVzKQo=
</data>        

          </attachment>
    </bug>

</bugzilla>