<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>15584</bug_id>
          
          <creation_ts>2008-05-09 20:51:22 +0400</creation_ts>
          <short_desc>линкер ругается на cos() , -lm не помогает</short_desc>
          <delta_ts>2008-05-10 15:00:32 +0400</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>gcc</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>NOTABUG</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yan">yantux</reporter>
          <assigned_to name="Vitaly Lipatov">lav</assigned_to>
          <cc>glebfm</cc>
    
    <cc>ldv</cc>
    
    <cc>yantux</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>69583</commentid>
    <comment_count>0</comment_count>
    <who name="Yan">yantux</who>
    <bug_when>2008-05-09 20:51:24 +0400</bug_when>
    <thetext>Добрый день, всех с праздником.

Вроде пишу простую прогу с использованием функции cos() подключаю библиотеку для
линковки -lm , она вроде бы на месте в /lib/libm.so версия 2.5.1, если я
правильно понял. Однако линкер говорит, что не знает откуда взять cos()

вопрос - какую библиотеку надо подсовывать линкеру, чтобы он корректно линковал
прогу? Вроде раньше таких чудес не было?

Дистриб altlinux обновлённый sisyphus
Steps to Reproduce:
#include &lt;stdio.h&gt;
#include &lt;math.h&gt;

int main( void ) {

long double  a = 0, b = 0;

printf( &quot;cos=%f\n&quot;, cos( a ) );

return( 0 );
}

gcc -lm ./math.c
Actual Results:  
/home/yan/tmp/cclkOCdt.o: In function `main&apos;:
math.c:(.text+0x53): undefined reference to `cos&apos;
collect2: выполнение ld завершилось с кодом возврата 1


Expected Results:  
Ожидается корректная линовка</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69586</commentid>
    <comment_count>1</comment_count>
    <who name="Andrey Rahmatullin">wrar</who>
    <bug_when>2008-05-09 21:01:14 +0400</bug_when>
    <thetext>gcc ./math.c -lm

http://freesource.info/wiki/AltLinux/Sisyphus/devel/UpStream/AsNeeded</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69603</commentid>
    <comment_count>2</comment_count>
    <who name="Yan">yantux</who>
    <bug_when>2008-05-10 13:05:47 +0400</bug_when>
    <thetext>Проблема решена:
http://www.linux.org.ru/view-message.jsp?msgid=2729273&amp;nocache=-961368719#2730362

-lm надо ставить в конце, не понятно почему так, вроде раньше такого не встечал</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69604</commentid>
    <comment_count>3</comment_count>
    <who name="Mikhail Gusarov">dottedmag</who>
    <bug_when>2008-05-10 13:30:20 +0400</bug_when>
    <thetext>(In reply to comment #2)

&gt; -lm надо ставить в конце, не понятно почему так, вроде раньше такого не 
встечал

Комментарий #1 читать отказываемся принципиально?
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69605</commentid>
    <comment_count>4</comment_count>
    <who name="Yan">yantux</who>
    <bug_when>2008-05-10 13:36:22 +0400</bug_when>
    <thetext>уже всё прочитал, всем спасибо</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69606</commentid>
    <comment_count>5</comment_count>
    <who name="Yan">yantux</who>
    <bug_when>2008-05-10 13:41:22 +0400</bug_when>
    <thetext>первый комме5нт кстати мне на почту не пришёл, не баг случайно?

а настройка очень жёсткая, очень ловко вывела меня в ступор
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69607</commentid>
    <comment_count>6</comment_count>
    <who name="Yan">yantux</who>
    <bug_when>2008-05-10 13:46:53 +0400</bug_when>
    <thetext>Вообще это не правильно!

Есть ключ -lm, если его нельзя ставить вначале, то линкер должен хотябы
ругнуться на его прекратить линковку! А то получается что он его корректно
проглатывает, как будто бы всё нормально, но на самом деле не использует -lm и
продолжает линковку как ни чём не бывало. Самостоятельно разобраться в причине
ошибки практически не реально.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69611</commentid>
    <comment_count>7</comment_count>
    <who name="Mikhail Gusarov">dottedmag</who>
    <bug_when>2008-05-10 14:54:32 +0400</bug_when>
    <thetext>(In reply to comment #5)
&gt; первый комме5нт кстати мне на почту не пришёл, не баг случайно?

Бесплатные почтовые сервисы славятся тем, что глотают почту из открытых 
проектов, ошибочно принимая её за спам.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69612</commentid>
    <comment_count>8</comment_count>
    <who name="Mikhail Gusarov">dottedmag</who>
    <bug_when>2008-05-10 14:55:55 +0400</bug_when>
    <thetext>(In reply to comment #6)

&gt; Есть ключ -lm, если его нельзя ставить вначале, то линкер должен хотябы
&gt; ругнуться на его прекратить линковку! А то получается что он его корректно
&gt; проглатывает, как будто бы всё нормально,

А всё нормально.

gcc a.c -lm b.c -lfoobar - вполне корректная ситуация.

ps: перевесил на компонент gcc, дабы больше lav@ не спамить.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>69614</commentid>
    <comment_count>9</comment_count>
    <who name="Yan">yantux</who>
    <bug_when>2008-05-10 15:00:32 +0400</bug_when>
    <thetext>папочка спам - пустая, я имею ввиду не папочку почтового клиента, я захожу в
почту через web сервис</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>