From owner-freebsd-hackers@freebsd.org Tue Mar 10 18:08:38 2020 Return-Path: Delivered-To: freebsd-hackers@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 18E7826BDE3; Tue, 10 Mar 2020 18:08:38 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-ot1-f48.google.com (mail-ot1-f48.google.com [209.85.210.48]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48cNPc6Y7cz3Cs5; Tue, 10 Mar 2020 18:08:36 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-ot1-f48.google.com with SMTP id a9so7900218otl.6; Tue, 10 Mar 2020 11:08:36 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:reply-to :from:date:message-id:subject:to:cc; bh=OqcXSDstDOq+pXsLWGS0/j7exXAXCZzQoYRVgeTtPEY=; b=k17NmW0uMZtlo+ZNSL6vV+n/lpPKyidGjmfDKWXL7vLuA5sxZ6K1sOQdcJaUlCxDNV vSKe4/fLQZG7vKfR4Flec2qx00Wq4k08gvbwvxsSL5a0v4IYk8tzvA4+fcN5iYlhCDG4 7Sngt7Gg2HuHxp2iuPksOD41nqUicQx7j8R52uADondmuzluRQwfNZuvDy5zZLrBvlDo iWQ3Ic3gdrxu0EICGOy9HiP+L8eH4mhZ3UmqKbTv2uU7A5H0ohEY3OWnYHplcGt6VD01 PxCBX9IYGkPDpFH35HXAGKHI/ADU5Pgia6V8FJK7m09aFvvV2U5QIHxjVTzL7mga02Ap hj8g== X-Gm-Message-State: ANhLgQ257krOA4IGIDk1aJ9NOK5KRQxanNEG4JffdDydjCYie2Mg23X8 CQXSNINMhmHniDEe2/HIQUdcDSuG X-Google-Smtp-Source: ADFU+vvgrgVnbr/4BokaA86qoBWTSwIVJTPJbsjodhGBQGu9aJKWyp8CgUZVmZO46Bv5t76OXJdVHg== X-Received: by 2002:a9d:20c1:: with SMTP id x59mr18751197ota.286.1583863714666; Tue, 10 Mar 2020 11:08:34 -0700 (PDT) Received: from mail-oi1-f171.google.com (mail-oi1-f171.google.com. [209.85.167.171]) by smtp.gmail.com with ESMTPSA id o1sm16131799otl.49.2020.03.10.11.08.33 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 10 Mar 2020 11:08:33 -0700 (PDT) Received: by mail-oi1-f171.google.com with SMTP id v19so14822495oic.12; Tue, 10 Mar 2020 11:08:33 -0700 (PDT) X-Received: by 2002:aca:3542:: with SMTP id c63mr2110985oia.135.1583863713744; Tue, 10 Mar 2020 11:08:33 -0700 (PDT) MIME-Version: 1.0 References: <9c7a8dea-ac8a-4d17-ed33-b6c4e882add8@digiware.nl> <936ed7c2-99d2-5df8-de3f-f64f28d2ba6f@digiware.nl> In-Reply-To: Reply-To: cem@freebsd.org From: Conrad Meyer Date: Tue, 10 Mar 2020 11:08:22 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [RFC] Adding a Rados block driver to bhyve To: Willem Jan Withagen Cc: "freebsd-virtualization@freebsd.org" , FreeBSD Hackers Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 48cNPc6Y7cz3Cs5 X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of csecem@gmail.com designates 209.85.210.48 as permitted sender) smtp.mailfrom=csecem@gmail.com X-Spamd-Result: default: False [-3.15 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; RCVD_TLS_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; RWL_MAILSPIKE_GOOD(0.00)[48.210.85.209.rep.mailspike.net : 127.0.0.18]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; RCPT_COUNT_THREE(0.00)[3]; MIME_GOOD(-0.10)[text/plain]; MIME_TRACE(0.00)[0:+]; DMARC_NA(0.00)[freebsd.org]; REPLYTO_ADDR_EQ_FROM(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; RCVD_COUNT_THREE(0.00)[4]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[48.210.85.209.list.dnswl.org : 127.0.5.0]; HAS_REPLYTO(0.00)[cem@freebsd.org]; IP_SCORE(-1.15)[ip: (-1.05), ipnet: 209.85.128.0/17(-2.98), asn: 15169(-1.65), country: US(-0.05)]; FORGED_SENDER(0.30)[cem@freebsd.org,csecem@gmail.com]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; TAGGED_FROM(0.00)[]; FROM_NEQ_ENVFROM(0.00)[cem@freebsd.org,csecem@gmail.com] X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Mar 2020 18:08:38 -0000 On Tue, Mar 10, 2020 at 9:28 AM Willem Jan Withagen wrote: > >> problem that libblock_rbd.so is stripped in such a way that > >> the symbol I need is removed. > > > So either I'm doing it the wrong way, like special options on the > > symbols oid. > > > However, I think there's something wrong with your > > library, too. The library should be usable even if it's stripped. Yes, strip only removes local symbols (.symtab), not exported ones (.dynsym). > I checked with objdump, and the symbol that I need is definitly not > present in the stripped version. How are you defining the symbol intended for export? Is the symbol a function or data? Does the compiler flag -fvisibility=hidden get used? Which symbol is missing and what are the symptoms? > And it does not really matter if I declare it static or not. Not declaring it "static" is necessary, if not sufficient. Looking at your code on github, here are some issues: * In block_if.h, you define an object blocklocal_backend. This is a header, and every compilation unit that pulls in the header will get its own copy of blocklocal_backend. You probably want 'extern block_backend_t blocklocal_backend;' instead. * You SET_DECLARE block_backend_set in block_if.c, but I think it needs to be in block_if.h. * There is some weirdness around linker sets being removed by the linker if they are empty, so you may want to add blockbackend_local to the linker set in the main program. (It's unclear to me why blockbackend_local is treated specially regardless.) However, I'm not quite sure why DATA_SET() in block_rbd.c is not creating __start_set_block_backend_set / __stop_set_block_backend_set exported symbols. As Alan asked, please provide 'nm -D foo.so'. Best, Conrad