tinycc-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Tinycc-devel] Include path bug (Was: Re: plans to 0.9.27)


From: Steffen Nurpmeso
Subject: [Tinycc-devel] Include path bug (Was: Re: plans to 0.9.27)
Date: Thu, 12 Oct 2017 23:42:38 +0200
User-agent: s-nail v14.9.4-12-g3a6ba889

Hi.

grischka <address@hidden> wrote:
 |grischka wrote:
 |Now, I fixed that, plus the ARM signed char test, plus some other
 |stuff.
 |
 |Also, I removed the win32/Makefile (thanks to Christian's OK),
 |and the VIP patch (it is just not how it should work), and the
 |-iwithprefix option (what was the point without -iprefix).
 |
 |Moreover, there is
 |* a patch to tccelf.c to avoid DT_TEXTREL unless really required
 |* a nifty one in tccasm.c to avoid the 'p3' forward label from
 |   alloca86_64.S being put into dynsym with a relocation (huh?)
 |* and the (sig)set variable in tcctest.c was made static to
 |   avoid some issue with inline asm that I didn't try to fix
 |* no diff -I option anymore to make tests work with busybox
 |* a patch to tccrun.c for better selinux support.
 |
 |With these changes, tcc now seems to build and pass all tests
 |cleanly on Alpine musl x86_64 standard-grsec and vanilla too,
 |configured with
 |    ./configure --config-musl --with-selinux
 |optionally also with
 |    --disable-static and/or --cc=tcc (once it was installed)

Does not work for me at all on musl system:

  address@hidden tmp]$ ldd zt
  ldd: zt: Not a valid dynamic program

As well as:

  address@hidden nail.git]$ make
  make[1]: Entering directory '/home/steffen/src/nail.git'
    CC accmacvar.o
  In file included from ./accmacvar.c:52:
  In file included from ./nail.h:2615:
  ./nailfuns.h:425: error: invalid type
  make[1]: *** [mk-config.mk:120: accmacvar.o] Error 1
  make[1]: Leaving directory '/home/steffen/src/nail.git'
  make: *** [makefile:20: build] Error 2
  address@hidden nail.git]$ sed -e 425p -e d nailfuns.h
  FL void        n_verr(char const *format, va_list ap);

and even worse:

  address@hidden nail.git]$ tcc -print-search-dirs
  install: /home/steffen/usr/opt/tcc/lib/tcc
  include:
    /home/steffen/usr/include
    /home/steffen/usr/include
    /usr/local/include
    /usr/include
    /home/steffen/usr/opt/tcc/lib/tcc/include

Quite honestly i am pissed.  How can stdarg.h ever be found here
when there is one in /usr/include?  If this is not supposed to
work like that, why provide stdarg.h at all?  Are there systems
without stdarg.h in /usr/include?  See, i do not know.  You gave
that token thing maybe "hint", but why should this be handled in
compiler internal code when all that is missing is inclusion of
a compiler/ABI specific header first?  That is the road to hell!

Note that i never was actually interested in compiler or kernel
programming.  Actually not true, but i never found time to come
down to this, as there was always other code i had to deal with
and wanted to get straight.  But if i had, i would really dig into
the problems and find a solution of my own, how tiny and/or
ridiculous that would have been -- as if given an exercise by
Knuth: write an operating system.

I cannot spend time on tcc, i just have none.  I admire there is
tcc, and pcc, and people working on them.  But you are active in
this project for a decade and a half or so, at least, you know the
code or even saw it growing, live, i did not.  And then
i nonetheless spent more than two hours trying to inject code,
which was a total waste of time.  Maybe some day i will have the
time to do that, but i have other projects that i want to take
care of and, differently to tcc, can do so.
Thank you.

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]