public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Carlos Munoz <carlos@kenati.com>
To: Lee Revell <rlrevell@joe-job.com>, Valdis.Kletnieks@vt.edu
Cc: Carlos Munoz <carlos@kenati.com>, linux-kernel@vger.kernel.org
Subject: Re: How can I link the kernel with libgcc ?
Date: Thu, 09 Mar 2006 19:25:50 -0800	[thread overview]
Message-ID: <4410F1BE.7000904@kenati.com> (raw)
In-Reply-To: <4410EC0D.3090303@kenati.com>

Carlos Munoz wrote:

> Lee Revell wrote:
>
>> On Thu, 2006-03-09 at 20:45 -0500, Valdis.Kletnieks@vt.edu wrote:
>>  
>>
>>> On Thu, 09 Mar 2006 17:44:16 PST, Carlos Munoz said:
>>>   
>>>
>>>> I'm writing an audio driver and the hardware requires floating 
>>>> point arithmetic.  When I build the kernel I get the following 
>>>> errors at link time:
>>>>     
>>>
>>> Tough break, that.  You sure you can't figure a way to either push the
>>> floating point out to userspace
>>>   
>>
>>
>> Audio drivers should never have to directly manipulate the samples -
>> they just manage the DMA buffers and interrupts and wake up the process
>> at the right time.  Mixing, routing, volume control, DSP go in
>> userspace.
>>
>> Lee
>>
>>  
>>
> Hi Lee,
>
> Unfortunately, the driver needs to populate several coefficient tables 
> for the hardware to perform silence suppression and other advance 
> features. The values for these tables are calculated using log10 
> operations. I don't  see a clean way to push these operations to user 
> space without the need for custom applications that build the tables 
> and pass them to the driver.
>
> Thanks,
>
>
> Carlos Munoz
>
Anyway,

I figured out how to get the driver to use floating point operations. I 
included source code (from an open source math library) for the log10 
function in the driver. Then I added the following lines to the file 
arch/sh/kernel/sh_ksyms.c:

DECLARE_EXPORT(__subdf3);
DECLARE_EXPORT(__muldf3);
DECLARE_EXPORT(__divdf3);
DECLARE_EXPORT(__adddf3);
DECLARE_EXPORT(__floatsidf);
DECLARE_EXPORT(__eqdf2);
DECLARE_EXPORT(__fixdfsi);

Everything works now.

Thanks,


Carlos Munoz

  parent reply	other threads:[~2006-03-10  3:21 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-03-10  1:44 How can I link the kernel with libgcc ? Carlos Munoz
2006-03-10  1:45 ` Valdis.Kletnieks
2006-03-10  2:06   ` Lee Revell
2006-03-10  3:01     ` Carlos Munoz
2006-03-10  3:22       ` Lee Revell
2006-03-10  3:25       ` Carlos Munoz [this message]
2006-03-10  3:25         ` Lee Revell
2006-03-10  3:47           ` Carlos Munoz
2006-03-10 10:37             ` Denis Vlasenko
2006-03-10 11:05               ` Bart Hartgers
2006-03-10 18:03               ` Carlos Munoz
2006-03-10 18:33                 ` linux-os (Dick Johnson)
2006-03-10 18:41                   ` Ben Slusky
2006-03-10 19:18                 ` Al Viro
2006-03-10 20:04                   ` Carlos Munoz
2006-03-10 10:18         ` Jes Sorensen
2006-03-10 18:07           ` Carlos Munoz
2006-03-10  8:01       ` Arjan van de Ven
2006-03-10  2:02 ` Lee Revell
     [not found] <5OEVB-3GX-15@gated-at.bofh.it>
2006-03-10  2:32 ` Robert Hancock

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4410F1BE.7000904@kenati.com \
    --to=carlos@kenati.com \
    --cc=Valdis.Kletnieks@vt.edu \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rlrevell@joe-job.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox