Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 Jun 2006 19:25:01 +0900 (JST)
From:      "Norikatsu Shigemura" <nork@FreeBSD.org>
To:        "Alexander Leidinger" <Alexander@Leidinger.net>
Cc:        freebsd-current@FreeBSD.org, Norikatsu Shigemura <nork@FreeBSD.org>
Subject:   Re: Linux-flashplugin7 & rtld - RFC
Message-ID:  <2692.219.127.74.121.1150885501.squirrel@mail.ninth-nine.com>
In-Reply-To: <20060621121114.h6udocel5wsgg8sg@netchild.homeip.net>
References:  <44986777.6070601@FreeBSD.org> <20060621061437.GA53019@fit.vutbr.cz> <ygeodwn2fea.wl%ume@mahoroba.org> <2265.211.18.249.19.1150871779.squirrel@mail.ninth-nine.com> <20060621121114.h6udocel5wsgg8sg@netchild.homeip.net>

next in thread | previous in thread | raw e-mail | index | archive | help
> Quoting Norikatsu Shigemura <nork@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;
      :
}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2692.219.127.74.121.1150885501.squirrel>