Michael Matz on 2014-09-18:

>   extern void f(void);
>   g() { void (*ptr)(void) = f; ptr(); }
>
> Here there will be a GOT slot allocated for 'f'.  The initialization of 
> 'ptr' will load from that GOT slot.  So even though direct calls to 'f' 
> can (and will be, when 'f' is defined) fully resolved without a PLT slot, 

If f is in a library it may turn out not to be in range for a direct
call. So in general you need the PLT (or the old jump table).

> Probably I'd have to use that exact debian-based setup under qemu (my 
> chroot is based on some openSUSE version), but I don't know a simple 
> recipe for how.  Any help appreciated.

You could try taking debootstrap from the Debian archive, unpacking it
manually, and running it as root thus:

.../debootstrap --arch armhf unstable .../chroots/arm64-unstable 
http://ftp.debian.org/debian

I've done that before for creating a Debian chroot on a non-Debian
Linux machine. It's also what I use for creating a chroot for a
different architecture, such as arm64 on i386 (with QEMU), or armhf on
arm64 (without QEMU).

Edmund

_______________________________________________
Tinycc-devel mailing list
Tinycc-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/tinycc-devel

Reply via email to