Linux-flashplugin7 & rtld - RFC

Norikatsu Shigemura nork at FreeBSD.org
Wed Jun 21 10:25:06 UTC 2006


> Quoting Norikatsu Shigemura <nork at freebsd.org> (from Wed, 21 Jun 2006
> 15:36:19 +0900 (JST)):
>>> Nork-san says that it is hard to make LPW work on 7-CURRENT.  But, he
>>> is trying to make it work with another approach.
>> Yes, I'm working Userland COMPAT_LINUX technology[TM]:-).
> Can you be a little bit more verbose what this is? Just a high level
> overview. I'm curious since I have some ideas about some kind of
> cross-compatibility "something" too (a combination of objcopy, a
> liblinux2bsd and maybe some libmap stuff).

I'm implementing like following codes to libc/libm/libpthread
on 7-current with SYMVER_ENABLED=yes.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#include <sys/types.h>
#include <sys/cdefs.h>

#define SYM_COMPAT(sym, impl, ver)              \
        __sym_compat(sym, impl, ver)
#define GLIBC_SYMBOL_2(sym, major, minor)       \
        GLIBC_##major##_##minor##_##sym
#define GLIBC_COMPAT_2(sym, major, minor)       \
        SYM_COMPAT(sym, GLIBC_SYMBOL_2(sym, major, minor), GLIBC_ ##major.
##minor);

#include <string.h>

/*
 * strcmp(3)
 */
GLIBC_COMPAT_2(strcmp, 2, 0);

int
GLIBC_SYMBOL_2(strcmp, 2, 0)
        (const char *s1, const char *s2)
{
        int ret;
        ret = strcmp(s1, s2);

        dprintf("strcmp(\"%s\", \"%s\") = %d", s1, s2, ret);

        return ret;
}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

And Version.def, too.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# $FreeBSD$

GLIBC_2.0 {
    strcmp;
      :
}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



More information about the freebsd-current mailing list