From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6931461770728964096 X-Received: by 2002:a25:4906:: with SMTP id w6mr32118011yba.324.1613991679653; Mon, 22 Feb 2021 03:01:19 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a25:af4a:: with SMTP id c10ls8136044ybj.1.gmail; Mon, 22 Feb 2021 03:01:19 -0800 (PST) X-Google-Smtp-Source: ABdhPJxkV5OLEhlNUy/WyrkKPteGYzZ7AxVbBYqNLjqJ3zRwShs9nKGjeXx453E79DaG6digcioo X-Received: by 2002:a25:e74f:: with SMTP id e76mr31530521ybh.421.1613991679113; Mon, 22 Feb 2021 03:01:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1613991679; cv=none; d=google.com; s=arc-20160816; b=rnMTGvzq1gRT/y0Xh3iFLnnwNa9ShDkvUuYEWmNghvBGoa4XkGtQHvGL74ONywgRjw wbBYaiEMKfboAzcRFi47oXWZYw13WoFCw1nI1ix5VjMnB3Q44dtJCXzq/740VNUJSlOj E6xn6ZyiyCwNl1l5DSMhN9MyKD5VhSOtZnwO2q50CSI576/rSGphHhCP9BUL71Ti8hhQ SFGD7+frvwek5BlpInUXJ8aLEF7u+5SuXEBuTiQaTeCbppVqaEG9FoZA80v5bSkqNMpp zdVrVjVCm6l99oa/MmU0tVNmzVbxm+QufqzMVIkm9SNF6878TFbyiljaQQFBlx/O1BTp 8Tmg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:content-language:accept-language:in-reply-to :references:message-id:date:thread-index:thread-topic:subject:to :from; bh=LHCMmo1BMnmIYwfseQ7xXzUGvP80Gl1PVY1KCfq1BLY=; b=S9Pd+zWr5zqts8KEwSXLJYog6BjbosA3DVujZUNzK18ueG8DlMymcUR5yNRm0hMSgF SwBDA65qpekGfN3RbQJBxgLUc/3VAqbdziWdIbmRvpKZBmx95MDVQA/pfuN4U8L9YuL5 QKOYPMBqroTylrIQ8z3GxZ+3hIzqFa+HxY7SkdUfF+Bjk61SyVfvX7FXpBCBqrczWTSo PVuqQlgc5ZSzy8EmPvUkvpB8SgxkrQVaQBKC4gH82s+w3KLBS5opYxdMGmhAiQzob0O7 JVNfYdeBjpVPjv6A1knp+3nQHZrkWsASv2Vn+KHgb/rPv+h70y9z8z7wHuFoPgJiegn+ 33HQ== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of dama@universal-robots.com designates 67.231.156.11 as permitted sender) smtp.mailfrom=dama@universal-robots.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=universal-robots.com Return-Path: Received: from mx0b-0015db01.pphosted.com (mx0b-0015db01.pphosted.com. [67.231.156.11]) by gmr-mx.google.com with ESMTPS id x7si1252163ybm.0.2021.02.22.03.01.19 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 22 Feb 2021 03:01:19 -0800 (PST) Received-SPF: pass (google.com: domain of dama@universal-robots.com designates 67.231.156.11 as permitted sender) client-ip=67.231.156.11; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of dama@universal-robots.com designates 67.231.156.11 as permitted sender) smtp.mailfrom=dama@universal-robots.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=universal-robots.com Received: from pps.filterd (m0043686.ppops.net [127.0.0.1]) by mx0b-0015db01.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 11MB1Ifd029744; Mon, 22 Feb 2021 06:01:18 -0500 Authentication-Results: teradyne.com; spf=pass smtp.mailfrom=dama@universal-robots.com Received: from mail.universal-robots.com (mail.universal-robots.com [87.50.110.154]) by mx0b-0015db01.pphosted.com with ESMTP id 36tv9php12-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 22 Feb 2021 06:01:18 -0500 Received: from UR-PVW-EXCH01.unirobotts.local (10.234.32.16) by UR-PVW-EXCH01.unirobotts.local (10.234.32.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2176.2; Mon, 22 Feb 2021 12:01:16 +0100 Received: from UR-PVW-EXCH01.unirobotts.local ([fe80::c179:eb73:a7cc:7366]) by UR-PVW-EXCH01.unirobotts.local ([fe80::c179:eb73:a7cc:7366%6]) with mapi id 15.01.2176.004; Mon, 22 Feb 2021 12:01:16 +0100 From: Daniel Machon To: Baurzhan Ismagulov , "isar-users@googlegroups.com" Subject: RE: Relocation of SDK Thread-Topic: Relocation of SDK Thread-Index: AdcHzl/grljuywyUSLKLNJENMaNroABIs6SAAASSLLA= Date: Mon, 22 Feb 2021 11:01:16 +0000 Message-ID: <9f6aa9b8d46c40cfa62f02d36acc81b5@universal-robots.com> References: <20210222090319.GJ20742@yssyq.m.ilbers.de> In-Reply-To: <20210222090319.GJ20742@yssyq.m.ilbers.de> Accept-Language: da-DK, en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-originating-ip: [10.234.32.103] x-c2processedorg: c38ca319-04fc-491c-ab2c-8eabe3310c15 Content-Type: multipart/related; boundary="_004_9f6aa9b8d46c40cfa62f02d36acc81b5universalrobotscom_"; type="multipart/alternative" MIME-Version: 1.0 X-Proofpoint-SPF-Result: pass X-Proofpoint-SPF-Record: v=spf1 a a:mail.universal-robots.com mx ip4:34.215.113.156 ip4:94.137.142.97 ip4:216.146.32.161 ip4:216.146.32.185 ip4:216.146.32.186 ip4:216.146.32.187 ip4:216.146.32.188 ip4:81.93.164.103 ip4:81.93.173.201 ip4:92.62.195.66 ip4:89.221.162.141 ip4:185.21.42.165 ip4:82.199.95.7 ip4:52.166.165.115 ip4:52.232.121.147 ip4:52.232.124.185 ip4:52.232.123.131 ip4:83.149.98.65 ip4:52.166.178.208 ip4:40.68.36.243 include:servers.mcsv.net include:2631781.spf07.hubspotemail.net include:spf.mandrillapp.com include:spf.protection.outlook.com include:spf-0015db01.pphosted.com -all X-Proofpoint-Spam-Details: rule=outbound_policy_notspam policy=outbound_policy score=0 spamscore=0 priorityscore=1501 mlxscore=0 malwarescore=0 clxscore=1015 bulkscore=0 phishscore=0 impostorscore=0 mlxlogscore=999 suspectscore=0 adultscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2102220102 X-TUID: rQl6COdQZaIs --_004_9f6aa9b8d46c40cfa62f02d36acc81b5universalrobotscom_ Content-Type: multipart/alternative; boundary="_000_9f6aa9b8d46c40cfa62f02d36acc81b5universalrobotscom_" --_000_9f6aa9b8d46c40cfa62f02d36acc81b5universalrobotscom_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable > Med venlig hilsen / Best regards Daniel Machon Embedded Linux Engineer R&D Department [cid:UR_New_Logo_266cf885-8c99-4fe9-bae0-ff88fedf0005.png] Universal Robots A/S Energivej 25 5260 Odense S Phone: +45 89 93 89 89 Cell: +45 27 99 72 32 dama@universal-robots.com www.universal-robots.com Please note that this message may contain confidential information. If you = have received this message by mistake, please inform the sender of the mist= ake, then delete the message from your system without making, distributing = or retaining any copies of it. Although we believe that the message and any= attachments are free from viruses and other errors that might affect the c= omputer or IT system where it is received and read, the recipient opens the= message at his or her own risk. We assume no responsibility for any loss o= r damage arising from the receipt or use of this message. If Universal Robots A/S processes personal data relating to physical person= s, such processing will meet the requirements of applicable data protection= legislation.Please see our Privacy Policy here. -----Original Message----- > From: isar-users@googlegroups.com On > Behalf Of Baurzhan Ismagulov > Sent: 22. februar 2021 10:03 > To: isar-users@googlegroups.com > Subject: Re: Relocation of SDK > > > CAUTION - EXTERNAL EMAIL: Do not open attachments or links unless you > recognize the sender and the content is safe. > > > On Sat, Feb 20, 2021 at 09:31:34PM +0000, Daniel Machon wrote: > > I would argue, that a common development workflow would be to use > the > > cross-toolchain provided by the SDK, and then chroot into the SDK to > > install dependencies (we have the possibility of installing multiarch > packages). > > I agree that chroot / nspawn / ... into the SDK is a useful feature and w= e > should keep it working. > > > > If you need to change the RPATH of any libraries (I came across this > > need when trying to make gdb available to the host), you can make > > RPATH relative using $ORIGIN. > > We had tried that and it didn't work: > > https://groups.google.com/g/isar-users/c/sjqTLpw4KTE/m/Ro9aLnGZAQAJ [Daniel Machon] I see, but why even change the interpreter and RPATH of any binaries that s= hould not be run on the host machine in the first place. The SO post is abo= ut patching the interpreter of 'grep' with $ORIGIN - obviously that doesn't= work - but then again, in this case we don't really want to patch grep in = the first place. I get there are 2 separate use-cases for the SDK: 1) Relocate the SDK and use the cross-toolchain from the host (chroot will = now not work) 2) Restore the SDK and use the chroot to build. What I was looking for was: 1) Relocate the SDK and use the toolchain from the host (chroot *still*work= s, toolchain does not work inside chroot) 2) Restore the SDK and use the chroot to build. I think this could be accomplished by: - Patching interpreter of all x86_64-linux-gnu-* only. No need to patch RPA= TH. - If you need other binaries to run on the host (gdb, clang etc.), that req= uire libraries, that themselves need patching: patch the interpreter of the= binary (no $ORIGIN) and patch the RPATH of the library using $ORIGIN. I get that a container SDK is coming (looking forward to this), but I think= that a traditional toolchain experience is much easier to integrate with y= our IDE for developers. This is one of the reasons for trying to get the SD= K running in this way. - relocate the SDK and use the cross-toolchain while still being able to us= e chroot. - still use the SDK as a chroot if you restore the chroot again. > So, the current way is to run the script to undo the relocations, chroot,= then > create the relocations again. If you try this, please let us know whether= it > works. IIRC, during the remove the script puts some replacement > relocations into the binaries, while the original binaries don't have any= -- > but that should work. > > Otherwise, one has probably to rebuild the SDK with updated > SDK_PREINSTALL / SDK_INSTALL. Not sure how that works for the existing > packages not coming from Debian. > > > With kind regards, > Baurzhan. > > -- > You received this message because you are subscribed to the Google > Groups "isar-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to isar-users+unsubscribe@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/isar- > users/20210222090319.GJ20742%40yssyq.m.ilbers.de. --_000_9f6aa9b8d46c40cfa62f02d36acc81b5universalrobotscom_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable


>


Med venlig hilsen / Best regards

Daniel Machon
Embedded Linux Engineer
R&D Department

Universal Robots = A/S
Energivej 25
5260 Odense S

Phone: +45 89 93 89 89
Cell: +45 27 99 72 32

dama@universal-robots.com<= br> www.universal-robots.com

 


Please note that this message may contain confidential information. If you = have received this message by mistake, please inform the sender of the mist= ake, then delete the message from your system without making, distributing = or retaining any copies of it. Although we believe that the message and any attachments are free from viruses and = other errors that might affect the computer or IT system where it is receiv= ed and read, the recipient opens the message at his or her own risk. We ass= ume no responsibility for any loss or damage arising from the receipt or use of this message.

If Universal Robots A/S processes personal data relating to physical person= s, such processing will meet the requirements of applicable data protection= legislation.Please see our Privacy Policy here.

-----Original Message-----
> From: isar-users@googlegroups.com <isar-users@googlegroups.com> = On
> Behalf Of Baurzhan Ismagulov
> Sent: 22. februar 2021 10:03
> To: isar-users@googlegroups.com
> Subject: Re: Relocation of SDK
>
>
> CAUTION - EXTERNAL EMAIL: Do not open attachments or links unless you<= br> > recognize the sender and the content is safe.
>
>
> On Sat, Feb 20, 2021 at 09:31:34PM +0000, Daniel Machon wrote:
> > I would argue, that a common development workflow would be to use=
> the
> > cross-toolchain provided by the SDK, and then chroot into the SDK= to
> > install dependencies (we have the possibility of installing multi= arch
> packages).
>
> I agree that chroot / nspawn / ... into the SDK is a useful feature an= d we
> should keep it working.
>
>
> > If you need to change the RPATH of any libraries (I came across t= his
> > need when trying to make gdb available to the host), you can make=
> > RPATH relative using $ORIGIN.
>
> We had tried that and it didn't work:
>
> https://groups.google.com/g/isar-users/c/sjqTLpw4KTE/m/Ro9aLnGZAQ= AJ

[Daniel Machon]
I see, but why even change the interpreter and RPATH of any binaries that s= hould not be run on the host machine in the first place. The SO post is abo= ut patching the interpreter of 'grep' with $ORIGIN - obviously that doesn't= work - but then again, in this case we don't really want to patch grep in the first place.

I get there are 2 separate use-cases for the SDK:
1) Relocate the SDK and use the cross-toolchain from the host (chroot will = now not work)
2) Restore the SDK and use the chroot to build.

What I was looking for was:
1) Relocate the SDK and use the toolchain from the host (chroot *still*work= s, toolchain does not work inside chroot)
2) Restore the SDK and use the chroot to build.

I think this could be accomplished by:

- Patching interpreter of all x86_64-linux-gnu-* only. No need to patch RPA= TH.
- If you need other binaries to run on the host (gdb, clang etc.), that req= uire libraries, that themselves need patching: patch the interpreter of the= binary (no $ORIGIN) and patch the RPATH of the library using $ORIGIN.

I get that a container SDK is coming (looking forward to this), but I think= that a traditional toolchain experience is much easier to integrate with y= our IDE for developers. This is one of the reasons for trying to get the SD= K running in this way.

- relocate the SDK and use the cross-toolchain while still being able to us= e chroot.
- still use the SDK as a chroot if you restore the chroot again.

> So, the current way is to run the script to undo the relocations, chro= ot, then
> create the relocations again. If you try this, please let us know whet= her it
> works. IIRC, during the remove the script puts some replacement
> relocations into the binaries, while the original binaries don't have = any --
> but that should work.
>
> Otherwise, one has probably to rebuild the SDK with updated
> SDK_PREINSTALL / SDK_INSTALL. Not sure how that works for the existing=
> packages not coming from Debian.
>
>
> With kind regards,
> Baurzhan.
>
> --
> You received this message because you are subscribed to the Google
> Groups "isar-users" group.
> To unsubscribe from this group and stop receiving emails from it, send= an
> email to isar-users+unsubscribe@googlegroups.com.
> To view this discussion on the web visit
> https://groups.goo= gle.com/d/msgid/isar-
> users/20210222090319.GJ20742%40yssyq.m.ilbers.de.
--_000_9f6aa9b8d46c40cfa62f02d36acc81b5universalrobotscom_-- --_004_9f6aa9b8d46c40cfa62f02d36acc81b5universalrobotscom_ Content-Type: image/png; name="UR_New_Logo_266cf885-8c99-4fe9-bae0-ff88fedf0005.png" Content-Description: UR_New_Logo_266cf885-8c99-4fe9-bae0-ff88fedf0005.png Content-Disposition: inline; filename="UR_New_Logo_266cf885-8c99-4fe9-bae0-ff88fedf0005.png"; size=3508; creation-date="Mon, 22 Feb 2021 11:01:16 GMT"; modification-date="Mon, 22 Feb 2021 11:01:16 GMT" Content-ID: Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAAALsAAAAnCAYAAABXNDlSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ bWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6 eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1 OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJo dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv IiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RS ZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpD cmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiB4bXBNTTpJbnN0 YW5jZUlEPSJ4bXAuaWlkOkE5RjY4MTZDMkRENDExRTg5RDQ3OThDQTMyNkIwRjdFIiB4bXBNTTpE b2N1bWVudElEPSJ4bXAuZGlkOkE5RjY4MTZEMkRENDExRTg5RDQ3OThDQTMyNkIwRjdFIj4gPHht cE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTlGNjgxNkEyREQ0MTFF ODlENDc5OENBMzI2QjBGN0UiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTlGNjgxNkIyREQ0 MTFFODlENDc5OENBMzI2QjBGN0UiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94 OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4q1uftAAAKJElEQVR42uxdDXDUxRW/yyWXcCQB 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 --_004_9f6aa9b8d46c40cfa62f02d36acc81b5universalrobotscom_--