Giter Site home page Giter Site logo

Relocate RPATH about brew HOT 12 CLOSED

sjackman avatar sjackman commented on August 18, 2024
Relocate RPATH

from brew.

Comments (12)

DoomHammer avatar DoomHammer commented on August 18, 2024

I'd say you need to replace /home/linuxbrew/.linuxbrew with $HOMEBREW_PREFIX as well in existing RPATH

from brew.

DoomHammer avatar DoomHammer commented on August 18, 2024
patchelf --print-rpath perl/5.22.1/bin/perl
/home/linuxbrew/.linuxbrew/Cellar/perl/5.22.1/lib/5.22.1/x86_64-linux-thread-multi/CORE

vs

patchelf --print-rpath hello/2.10/bin/hello                                                                                                             
@@HOMEBREW_PREFIX@@/lib

from brew.

DoomHammer avatar DoomHammer commented on August 18, 2024

Something like #35?

from brew.

sjackman avatar sjackman commented on August 18, 2024

I'd say you need to replace /home/linuxbrew/.linuxbrew with $HOMEBREW_PREFIX as well in existing RPATH

Yes, that prefix should not exist in bottles, but a few bottles were being built without patchelf installed if they didn't themselves depend on any bottles, and those bottles have the RPATH set to /home/linuxbrew/.linuxbrew/lib rather than @@HOMEBREW_PREFIX@@/lib.

from brew.

sjackman avatar sjackman commented on August 18, 2024

My plan was to remove any RPATH variables that did not start with @@HOMEBREW_PREFIX@@ and then append $HOMEBREW_PREFIX/lib to the RPATH if it did not already contain it.

from brew.

sjackman avatar sjackman commented on August 18, 2024
patchelf --print-rpath perl/5.22.1/bin/perl
/home/linuxbrew/.linuxbrew/Cellar/perl/5.22.1/lib/5.22.1/x86_64-linux-thread-multi/CORE
brew install patchelf
brew install --build-bottle perl
brew bottle perl
tar xf perl*bottle*.tar.gz

You should see that all the /home/linuxbrew/.linuxbrew in RPATH and text files have been replaced by @@HOMEBREW_PREFIX@@. It's a bug if not.

from brew.

DoomHammer avatar DoomHammer commented on August 18, 2024

Hmm, I'll check if I had patchelf in place when bottling perl.

from brew.

DoomHammer avatar DoomHammer commented on August 18, 2024

The missing patchelf was the problem. Shall we allow bottling without patchelf?

from brew.

DoomHammer avatar DoomHammer commented on August 18, 2024

Same question about using system gcc?

from brew.

sjackman avatar sjackman commented on August 18, 2024

Shall we allow bottling without patchelf?

Probably not. It should give an error and exit.

from brew.

sjackman avatar sjackman commented on August 18, 2024

Same question about using system gcc?

I do want to support using the system gcc. The bottles are built on Ubuntu 14 using glibc 2.19 and gcc 4.8 by design so that those bottles can be run on Ubuntu 14 and newer distros without requiring that they install either Linuxbrew glibc or gcc.

from brew.

DoomHammer avatar DoomHammer commented on August 18, 2024

Original issue is no more thanks to #35. Talks about whether patchelf is needed for bottling can be split to separate issue.

from brew.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.