This is the mail archive of the libffi-discuss@sourceware.org mailing list for the libffi project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: libffi on FreeBSD/i386


Björn König wrote:
Hello,

I tried to use libffi 3.0.1 on FreeBSD/i386, but the testsuite found some
problems. Basically they are related to the approach where functions
return small structs in eax and edx. The darwin port deals already with
this issue.

So I introduced a new system-dependent assembly code file:
src/x86/freebsd.S which is a copy of src/x86/sysv.S with some lines from
src/x86/darwin.S.

Now FreeBSD/i386 passes all tests. I attached a patch to this mail.
Thanks! I've just rolled that into version 3.0.2.


By the way, I found a further minor bug: I think the 'includesdir'
variable in include/Makefile.am should be set to '$(includedir)' or
something like that, but not '$(libdir)/...'

The headers are installed under $(libdir) because they are platform dependent. The 32-bit and 64-bit versions are different from one another. Some operating systems, like Fedora Linux, can install 32- and 64-bit versions of libraries at the same time, so the headers should be installed under /usr/lib and /usr/lib64 respectively (we don't have /usr/include and /usr/include64!)

You should be using pkgconfig to find the headers like so...

gcc -c mycode.c `pkg-config libffi --cflags`



Thanks,

Anthony


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]