Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm Sender: cygwin-owner AT sourceware DOT cygnus DOT com Delivered-To: mailing list cygwin AT sourceware DOT cygnus DOT com Message-ID: <3766005C.AD40B34F@planmeca.com> Date: Tue, 15 Jun 1999 10:27:24 +0300 From: Arto Lehto X-Mailer: Mozilla 4.5 [en] (WinNT; I) X-Accept-Language: en,fi MIME-Version: 1.0 To: cygwin AT sourceware DOT cygnus DOT com Subject: Linking with math library Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hello dear gcc fellows, What's the proper syntax for linking with the math library (libm.a) It seems that a have to use the source code of the the library for getting ride of the 'undefined references', Thank you GNU ld version 2.7-97r1a (with BFD 2.7-97r1a) Supported emulations: sh shl opened script file test1.lnk c:/cygnus/bin/ld.exe: mode sh attempt to open vects.o succeeded vects.o attempt to open start.o succeeded start.o attempt to open main.o succeeded main.o attempt to open c:/cygnus/lib/libgcc.a succeeded (c:/cygnus/lib/libgcc.a)fp-bit.o (c:/cygnus/lib/libgcc.a)dp-bit.o (c:/cygnus/lib/libgcc.a)_lshiftrt.o (c:/cygnus/lib/libgcc.a)_muldi3.o (c:/cygnus/lib/libgcc.a)_lshrdi3.o (c:/cygnus/lib/libgcc.a)_mulsi3.o (c:/cygnus/lib/libgcc.a)_ashiftlt.o attempt to open c:/cygnus/lib/libm.a succeeded (c:/cygnus/lib/libm.a)s_sin.o (c:/cygnus/lib/libm.a)k_sin.o (c:/cygnus/lib/libm.a)e_rem_pio2.o (c:/cygnus/lib/libm.a)k_cos.o (c:/cygnus/lib/libm.a)s_fabs.o (c:/cygnus/lib/libm.a)k_rem_pio2.o (c:/cygnus/lib/libm.a)s_scalbn.o (c:/cygnus/lib/libm.a)s_floor.o (c:/cygnus/lib/libm.a)s_copysign.o C:\SH2\TUTORIAL\SIMPLE>build c:/cygnus/lib/libm.a(e_rem_pio2.o)(.text+0x574):e_rem_pio2.c: undefined reference to `__ashiftrt_r4_20' c:/cygnus/lib/libm.a(e_rem_pio2.o)(.text+0x6e0):e_rem_pio2.c: undefined reference to `__ashiftrt_r4_20' c:/cygnus/lib/libm.a(k_rem_pio2.o)(.text+0x164):k_rem_pio2.c: undefined reference to `__sdivsi3' c:/cygnus/lib/libm.a(k_rem_pio2.o)(.text+0x4a8):k_rem_pio2.c: undefined reference to `__ashrsi3' c:/cygnus/lib/libm.a(k_rem_pio2.o)(.text+0x4b0):k_rem_pio2.c: undefined reference to `__ashiftrt_r4_23' c:/cygnus/lib/libm.a(s_scalbn.o)(.text+0x160):s_scalbn.c: undefined reference to `__ashiftrt_r4_20' c:/cygnus/lib/libm.a(s_floor.o)(.text+0xf8):s_floor.c: undefined reference to `__ashiftrt_r4_20' c:/cygnus/lib/libm.a(s_floor.o)(.text+0x118):s_floor.c: undefined reference to `__ashrsi3' c:/cygnus/bin/ld.exe: link errors found, deleting executable `test1.out' @echo off rem rem build.bat rem for %%f in (vects main) do if exist %%f.o del %%f.o as start.s -o start.o -L -a >start.l for %%f in (vects main) do if exist %%f.c gcc -m2 -c -g %%f.c @rem ld -verbose -o test1.out vects.o start.o main.o -L c:/cygnus/lib -lm -Ttest1.lnk -M test1.map > l @rem ld -t -verbose -o test1.out vects.o start.o main.o -L c:/cygnus/lib -lm -Ttest1.lnk -cref -msh -Map test1.map > l ld -t -verbose -o test1.out vects.o start.o main.o -L c:/cygnus/lib -lgcc -lm -Ttest1.lnk -cref -Map test1.map > l /********************************* ** main.c **********************************/ #include #include #include int __main(void){} void hw_initialise (void) { } int main(void) { float f,x; x = 0.5; f = sin(x); return 0; } /**************************************** ** vects.c ****************************************/ #define STACK 0x47FC00 extern void start (void); /* Startup code (in start.s) */ typedef void (*fp) (void); /* **----------------------------------------------------------------------- ** Place the interrupt service routine symbols in the table ** to create the vector entry **----------------------------------------------------------------------- */ #define VECT_SECT __attribute__ ((section (".vects"))) const fp HardwareVectors[] VECT_SECT = { start, /* 0 Power-on reset, Program counter (PC) */ (fp) STACK, /* 1 Power-on reset, Stack pointer (SP) */ }; -- Want to unsubscribe from this list? Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com