fix startup, gcc5.4 ready

git-svn-id: svn://kolibrios.org@6574 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
siemargl 2016-10-07 09:23:37 +00:00
parent e8ffe59ea7
commit 726024dfe0
5 changed files with 60 additions and 3 deletions

View File

@ -33,6 +33,7 @@ start:
; or al, [params+buf_len-1]
; jnz .crash
; check if path written by OS
mov [argc], 0
mov eax, [hparams]
test eax, eax
jz .without_path

View File

@ -0,0 +1,42 @@
#include <stdio.h>
#include <math.h>
main()
{
int i;
for (i = 0; i < 10; i++)
{
printf("------------------------------------------------------\n");
printf ( "remainder of 5.3 / 2 is %f\n", remainder (5.3,2) );
printf ( "remainder of 18.5 / 4.2 is %f\n", remainder (18.5,4.2) );
//remainder of 5.3 / 2 is -0.700000
//remainder of 18.5 / 4.2 is 1.700000
printf ( "fmod of 5.3 / 2 is %f\n", fmod (5.3,2) );
printf ( "fmod of 18.5 / 4.2 is %f\n", fmod (18.5,4.2) );
// fmod of 5.3 / 2 is 1.300000
// fmod of 18.5 / 4.2 is 1.700000
double param, fractpart, intpart, result;
int n;
param = 3.14159265;
fractpart = modf (param , &intpart);
printf ("%f = %f + %f \n", param, intpart, fractpart);
//3.141593 = 3.000000 + 0.141593
param = 0.95;
n = 4;
result = ldexp (param , n);
printf ("%f * 2^%d = %f\n", param, n, result);
//0.950000 * 2^4 = 15.200000
param = 8.0;
result = frexp (param , &n);
printf ("%f = %f * 2^%d\n", param, result, n);
//8.000000 = 0.500000 * 2^4
param = 50;
result = frexp (param , &n);
printf ("%f = %f * 2^%d\n", param, result, n);
}
}

View File

@ -2,3 +2,6 @@ see
source/readme.*
source/changelog
source/tcc-doc.info or .texi
building Kolibri version
>make -f Makefile.kos32

View File

@ -3,7 +3,12 @@ LD = kos32-ld
SDK_DIR:= $(abspath ../../../sdk)
LDFLAGS = -static -nostdlib -T $(SDK_DIR)/sources/newlib/static.lds
#gcc 4.8
#LDFLAGS = -static -nostdlib -T $(SDK_DIR)/sources/newlib/static.lds
LDFLAGS = -static -S -nostdlib -T $(SDK_DIR)/lib/app-dynamic.lds \
--image-base 0
CFLAGS = -c -fno-ident -O2 -fomit-frame-pointer -U__WIN32__ -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32
@ -20,7 +25,8 @@ OBJECTS = $(patsubst %.c, %.o, $(SOURCES))
default: tcc
tcc: $(OBJECTS)
$(LD) $(LDFLAGS) $(LIBPATH) -o tcc $(OBJECTS) -lgcc_eh -lc -lgcc -lc
#gcc4.8 $(LD) $(LDFLAGS) $(LIBPATH) -o tcc $(OBJECTS) -lgcc_eh -lc -lgcc -lc
$(LD) $(LDFLAGS) $(LIBPATH) -o tcc $(OBJECTS) -lgcc -ldll -lc.dll
kos32-objcopy tcc -O binary
%.o : %.c $(SOURCES)

View File

@ -777,8 +777,13 @@ static void error1(TCCState *s1, int is_warning, const char *fmt, va_list ap)
/* default case: stderr */
if (s1->ppfp) /* print a newline during tcc -E */
fprintf(s1->ppfp, "\n"), fflush(s1->ppfp);
#ifndef TCC_TARGET_MEOS
fprintf(stderr, "%s\n", buf);
fflush(stderr); /* print error/warning now (win32) */
#else
fprintf(stdout, "%s\n", buf);
fflush(stdout); /* print error/warning now (win32) */
#endif
} else {
s1->error_func(s1->error_opaque, buf);
}
@ -2483,7 +2488,7 @@ PUB_FUNC void tcc_print_stats(TCCState *s, int64_t total_time)
tt = 0.001;
if (total_bytes < 1)
total_bytes = 1;
fprintf(stderr, "%d idents, %d lines, %d bytes, %0.3f s, %d lines/s, %0.1f MB/s\n",
fprintf(stdout, "%d idents, %d lines, %d bytes, %0.3f s, %d lines/s, %0.1f MB/s\n",
tok_ident - TOK_IDENT, total_lines, total_bytes,
tt, (int)(total_lines / tt),
total_bytes / tt / 1000000.0);