Summary: | media-sound/linuxsampler-0.3.3 r fails to build after gcc 4.1 upgrade | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Ben Cranston <bcranston> |
Component: | [OLD] GCC Porting | Assignee: | Gentoo Sound Team <sound> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | b.ohnsorg, dev, mihalw |
Priority: | High | ||
Version: | 2006.0 | ||
Hardware: | x86 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 117482 | ||
Attachments: |
Possible fix to compile with gcc-4
emerge --info Fix asm() call input argument type for memory argument. Another patch for the linuxsampler-0.3.3 package in portage. |
Description
Ben Cranston
2006-06-13 08:51:57 UTC
The problem is the x86 assembly. There are 2 options here. The easy fix is to remove the assembly and just use the C++ implementation and the hard way which is to fix the assembly. The question now is, what does the maintainer want to do. Created attachment 89230 [details, diff]
Possible fix to compile with gcc-4
I'm not sure if this is correct, but i think its right. Can some one check this for me.
(In reply to comment #2) > I'm not sure if this is correct, but i think its right. Can some one check > this for me. Don't know assembler, so can't comment on the patch. Just tested it: without the patch it didn't work, with the patch it did. "emerge --info" snippet: Portage 2.1-r2 (default-linux/x86/2006.0, gcc-4.1.1, glibc-2.4-r3, 2.6.17.6 i686) ================================================================= System uname: 2.6.17.6 i686 AMD Athlon(tm) processor Gentoo Base System version 1.12.4 app-admin/eselect-compiler: [Not Present] dev-lang/python: 2.4.3-r1 dev-python/pycrypto: 2.0.1-r5 dev-util/ccache: [Not Present] dev-util/confcache: [Not Present] sys-apps/sandbox: 1.2.17 sys-devel/autoconf: 2.13, 2.59-r7 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2 sys-devel/binutils: 2.16.1-r3 sys-devel/gcc-config: 1.3.13-r3 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.4.19-r1, 2.6.11-r2 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-march=athlon-tbird -O3 -pipe -fomit-frame-pointer" (In reply to comment #3) > (In reply to comment #2) > > I'm not sure if this is correct, but i think its right. Can some one check > > this for me. > > Don't know assembler, so can't comment on the patch. Just tested it: without > the patch it didn't work, with the patch it did. "emerge --info" snippet: works for me, too Created attachment 97119 [details]
emerge --info
Created attachment 102755 [details, diff]
Fix asm() call input argument type for memory argument.
(In reply to comment #2) > Created an attachment (id=89230) [edit] > Possible fix to compile with gcc-4 > > I'm not sure if this is correct, but i think its right. Can some one check > this for me. Sure :-) This patch maybe compiling but is not perfect. You're using C++ manerisms here together with inline assembly. Specifically, you're handing over a _reference_ to a const float. This is bad in 2 ways: a) from a C++ viewpoint, you shouldn't initialize a const reference like that. b) You're using a reference like a pointer. That's a nono. If you need a pointer, use a pointer. That's what the '&' operator is for. Flameeyes: Your turn now :-) Thanks Danny for the patch, fixed now. Thanks Danny for the patch, fixed now. *** Bug 158043 has been marked as a duplicate of this bug. *** Created attachment 109147 [details, diff]
Another patch for the linuxsampler-0.3.3 package in portage.
the problem is that even the patch which is in portage right now didn't work. so I've create this one. I've not tested it and I'm not sure if it's done correctly. However it's compiling now.
just add the patch to the files directory, edit the ebuild like this:
src_unpack() {
unpack ${A}
cd "${S}"
epatch "${FILESDIR}/${P}-gcc4.patch"
epatch "${FILESDIR}/${P}-gcc4-2.patch"
}
rebuild the digest and emerge it.
|