From owner-freebsd-hackers@freebsd.org Fri Nov 22 07:37:22 2019 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 8459D1AFAED for ; Fri, 22 Nov 2019 07:37:22 +0000 (UTC) (envelope-from 6yearold@gmail.com) Received: from mail-lj1-f178.google.com (mail-lj1-f178.google.com [209.85.208.178]) (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 47K7YY3gLHz4SPP for ; Fri, 22 Nov 2019 07:37:21 +0000 (UTC) (envelope-from 6yearold@gmail.com) Received: by mail-lj1-f178.google.com with SMTP id e9so6146437ljp.13 for ; Thu, 21 Nov 2019 23:37:21 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=LK3+jDBD5eZ6lG2iz1pNh6KDroLhV3ulHnPhipqK4F8=; b=aV1fEpBsFtZ98wuJvAiGx9eAJ0NZr5VUNw/9v4yWmCRsojiN+erqk/rMz5vs/XFh20 H5g9hST41EukAAhrITSBq7B0rZ+HoleqIq+EKa8aMnspnAbxks4q41yezaJD9KPofqFl unH5ZBaK1C1t3S9tWNwZ+gs08illGKzOTjYzMjfU/8oHsIKO7UAjjNnRQ9Xcu12hdxfD 2+BuHRPot4Mabl1SLpbG1iEebjVD9KZwFTNRYhugOQ8J8NC8WmZX9NyW/4rpflGkE9Z1 Wjui4gT7AZ5GJQ6TVn1h9T+pKXOtniCVmmGVd9zflUFa8VTzpqRxmCq14SpwEqhm/h8x GRNQ== X-Gm-Message-State: APjAAAV9158Tu82ae67HWYHMmxOiJB5AS5YbT7xWZcxc3EN61KBSsOo/ MUrcaSHaSMgWu/Ymvl7qYneKefs3Esda4g== X-Google-Smtp-Source: APXvYqwiHjpwM6ZLs0QSYY8qiRIZKmFPlTdgMxEl0PB3JYCL048qejyHlBvNrdM3TNdCZsQmHdXB/Q== X-Received: by 2002:a2e:81c6:: with SMTP id s6mr10991225ljg.61.1574408239230; Thu, 21 Nov 2019 23:37:19 -0800 (PST) Received: from mail-lj1-f169.google.com (mail-lj1-f169.google.com. [209.85.208.169]) by smtp.gmail.com with ESMTPSA id f14sm2668877lfa.67.2019.11.21.23.37.17 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 21 Nov 2019 23:37:18 -0800 (PST) Received: by mail-lj1-f169.google.com with SMTP id 139so6234290ljf.1 for ; Thu, 21 Nov 2019 23:37:17 -0800 (PST) X-Received: by 2002:a2e:994f:: with SMTP id r15mr11043638ljj.18.1574408237600; Thu, 21 Nov 2019 23:37:17 -0800 (PST) MIME-Version: 1.0 From: Gleb Popov Date: Fri, 22 Nov 2019 11:36:52 +0400 X-Gmail-Original-Message-ID: Message-ID: Subject: Linking Linux library to FreeBSD program. To: freebsd-hackers X-Rspamd-Queue-Id: 47K7YY3gLHz4SPP X-Spamd-Bar: -- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of 6yearold@gmail.com designates 209.85.208.178 as permitted sender) smtp.mailfrom=6yearold@gmail.com X-Spamd-Result: default: False [-2.13 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; FROM_HAS_DN(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[freebsd-hackers@freebsd.org]; DMARC_NA(0.00)[freebsd.org]; URI_COUNT_ODD(1.00)[5]; RCPT_COUNT_ONE(0.00)[1]; RCVD_COUNT_THREE(0.00)[4]; MIME_TRACE(0.00)[0:+,1:+,2:~]; TO_DN_ALL(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; RCVD_IN_DNSWL_NONE(0.00)[178.208.85.209.list.dnswl.org : 127.0.5.0]; IP_SCORE(-1.13)[ip: (-0.46), ipnet: 209.85.128.0/17(-3.17), asn: 15169(-1.97), country: US(-0.05)]; FORGED_SENDER(0.30)[arrowd@freebsd.org,6yearold@gmail.com]; RWL_MAILSPIKE_POSSIBLE(0.00)[178.208.85.209.rep.mailspike.net : 127.0.0.17]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; FROM_NEQ_ENVFROM(0.00)[arrowd@freebsd.org,6yearold@gmail.com]; RCVD_TLS_ALL(0.00)[]; TO_DOM_EQ_FROM_DOM(0.00)[] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 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: Fri, 22 Nov 2019 07:37:22 -0000 Hello hackers@ In my quest for CUDA on FreeBSD I managed to compile a simple CUDA program using native clang. However, it required linking to libcudart.so from Linux CUDA distribution. As you can guess, running this binary results in a segfault - a.out being a FreeBSD binary tries to load libcudart.so Linux library, which in turn pulls Linux libc.so. What course of action could be taken in this situation? My plan is to generate a native wrapper library for libcudart.so in which every exported function would call Linux binary linked to real libcudart.so and route function arguments via RPC or some other mechanism. This looks awful for sure, but I don't see any other solutions.