Date: Mon, 23 Sep 2019 16:28:34 -0400 From: Mark Johnston <markj@freebsd.org> To: Warner Losh <imp@bsdimp.com> Cc: "Conrad E. Meyer" <cem@freebsd.org>, src-committers <src-committers@freebsd.org>, svn-src-all <svn-src-all@freebsd.org>, svn-src-head <svn-src-head@freebsd.org> Subject: Re: svn commit: r352623 - in head/sys: amd64/amd64 kern Message-ID: <20190923202834.GE15061@raichu> In-Reply-To: <CANCZdfr6ZdUne6ZrARouq9vKU=WH227vOVEQ-ho7JJfQ_gsKWQ@mail.gmail.com> References: <201909231414.x8NEEh9e040728@repo.freebsd.org> <CAG6CVpUFeSTCH85NWsVXJ4Tq26R3SZn_syq2mLAc76BzgZTSTw@mail.gmail.com> <20190923190629.GD15061@raichu> <CANCZdfr6ZdUne6ZrARouq9vKU=WH227vOVEQ-ho7JJfQ_gsKWQ@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Sep 23, 2019 at 10:13:14PM +0200, Warner Losh wrote: > On Mon, Sep 23, 2019, 9:06 PM Mark Johnston <markj@freebsd.org> wrote: > > > On Mon, Sep 23, 2019 at 11:28:52AM -0700, Conrad Meyer wrote: > > > Hi Mark, > > > > > > On Mon, Sep 23, 2019 at 7:14 AM Mark Johnston <markj@freebsd.org> wrote: > > > > > > > > Author: markj > > > > Date: Mon Sep 23 14:14:43 2019 > > > > New Revision: 352623 > > > > URL: https://svnweb.freebsd.org/changeset/base/352623 > > > > > > > > Log: > > > > Use elf_relocaddr() when handling R_X86_64_RELATIVE relocations. > > > > > > > > This is required for DPCPU and VNET data variable definitions to > > work when > > > > KLDs are linked as DSOs. R_X86_64_RELATIVE relocations should not > > appear > > > > in object files, so assert this in elf_relocaddr(). > > > > > > Is the goal to eventually link amd64 KLDs as DSOs? I might be > > > confusing the terminology, but I believe amd64 .ko's today are > > > unlinked ordinary object files, rather than shared objects. (I > > > believe they use kern/link_elf_obj.c rather than kern/link_elf.c > > > today.) > > > > > > If so: great! > > > > That's right, and that is indeed my goal. At least, I would like to > > make the option available; with my patch set, it is possible to specify > > the format at both the per-module and global levels. There are several > > in-tree modules (some of the HighPoint RAID drivers, if you're curious) > > that cannot be linked as DSOs because they contain a non-PIC blob, and > > for now lld refuses to link them into a DSO. > > > > That problem might be better solved by removing the highpount driver since > they are old and abandon ware these days. I'm serious here, old stuff with > low value getting in the way might be better off in our rearview mirror... Well, there are at least four drivers. I'm not sure which, if any, are actively used these days, though some of them have gotten vendor updates in the past several years. In any case, handling the issue involved adding a single line to each driver's makefile, so I don't feel too oppressed.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20190923202834.GE15061>