Ticket #60165: remove_-rpath_on_Tiger.patch

File remove_-rpath_on_Tiger.patch, 6.1 KB (added by ballapete (Peter "Pete" Dyballa), 4 years ago)

Set of patches to allow build on Tiger without using -Wl,-rpath

  • mesonbuild/modules/gnome.py

    old new  
    277277        if isinstance(lib, build.SharedLibrary):
    278278            libdir = os.path.join(state.environment.get_build_dir(), state.backend.get_target_dir(lib))
    279279            link_command.append('-L' + libdir)
    280             if include_rpath:
    281                 link_command.append('-Wl,-rpath,' + libdir)
    282280            depends.append(lib)
    283281            # Needed for the following binutils bug:
    284282            # https://github.com/mesonbuild/meson/issues/1911
     
    287285            for d in state.backend.determine_rpath_dirs(lib):
    288286                d = os.path.join(state.environment.get_build_dir(), d)
    289287                link_command.append('-L' + d)
    290                 if include_rpath:
    291                     link_command.append('-Wl,-rpath,' + d)
    292288        if use_gir_args and self._gir_has_option('--extra-library'):
    293289            link_command.append('--extra-library=' + lib.name)
    294290        else:
     
    345341                            getattr(dep, 'is_libtool', False)):
    346342                        lib_dir = os.path.dirname(lib)
    347343                        external_ldflags.update(["-L%s" % lib_dir])
    348                         if include_rpath:
    349                             external_ldflags.update(['-Wl,-rpath {}'.format(lib_dir)])
    350344                        libname = os.path.basename(lib)
    351345                        if libname.startswith("lib"):
    352346                            libname = libname[3:]
  • mesonbuild/linkers.py

    old new  
    678678                        is_shared_module: bool) -> T.List[str]:
    679679        if is_shared_module:
    680680            return []
    681         install_name = ['@rpath/', prefix, shlib_name]
     681        install_name = ['@loader_path/', prefix, shlib_name]
    682682        if soversion is not None:
    683683            install_name.append('.' + soversion)
    684684        install_name.append('.dylib')
     
    704704        for rp in all_paths:
    705705            args.extend(self._apply_prefix('-rpath,' + rp))
    706706
    707         return (args, set())
     707        return []
    708708
    709709
    710710class GnuDynamicLinker(GnuLikeDynamicLinkerMixin, PosixDynamicLinkerMixin, DynamicLinker):
  • mesonbuild/backend/ninjabackend.py

    old new  
    15541554                # now have them. Once slashes are forbidden, remove this bit.
    15551555                target_slashname_workaround_dir = os.path.join(os.path.dirname(target.name),
    15561556                                                               self.get_target_dir(target))
    1557             else:
    1558                 target_slashname_workaround_dir = self.get_target_dir(target)
    1559             (rpath_args, target.rpath_dirs_to_remove) = \
    1560                          rustc.build_rpath_args(self.environment,
    1561                                                 self.environment.get_build_dir(),
    1562                                                 target_slashname_workaround_dir,
    1563                                                 self.determine_rpath_dirs(target),
    1564                                                 target.build_rpath,
    1565                                                 target.install_rpath)
    1566             # ... but then add rustc's sysroot to account for rustup
    1567             # installations
    1568             for rpath_arg in rpath_args:
    1569                 args += ['-C', 'link-arg=' + rpath_arg + ':' + os.path.join(rustc.get_sysroot(), 'lib')]
     1557#            else:
     1558#                target_slashname_workaround_dir = self.get_target_dir(target)
     1559#            (rpath_args, target.rpath_dirs_to_remove) = \
     1560#                         rustc.build_rpath_args(self.environment,
     1561#                                                self.environment.get_build_dir(),
     1562#                                                target_slashname_workaround_dir,
     1563#                                                self.determine_rpath_dirs(target),
     1564#                                                target.build_rpath,
     1565#                                                target.install_rpath)
     1566#            # ... but then add rustc's sysroot to account for rustup
     1567#            # installations
     1568#            for rpath_arg in rpath_args:
     1569#                args += ['-C', 'link-arg=' + rpath_arg + ':' + os.path.join(rustc.get_sysroot(), 'lib')]
    15701570        compiler_name = self.get_compiler_rule_name('rust', target.for_machine)
    15711571        element = NinjaBuildElement(self.all_outputs, target_name, compiler_name, main_rust_file)
    15721572        if len(orderdeps) > 0:
     
    27762776            target_slashname_workaround_dir = os.path.join(
    27772777                os.path.dirname(target.name),
    27782778                self.get_target_dir(target))
    2779         else:
    2780             target_slashname_workaround_dir = self.get_target_dir(target)
    2781         (rpath_args, target.rpath_dirs_to_remove) = \
    2782                     linker.build_rpath_args(self.environment,
    2783                                             self.environment.get_build_dir(),
    2784                                             target_slashname_workaround_dir,
    2785                                             self.determine_rpath_dirs(target),
    2786                                             target.build_rpath,
    2787                                             target.install_rpath)
    2788         commands += rpath_args
     2779#        else:
     2780#            target_slashname_workaround_dir = self.get_target_dir(target)
     2781#        (rpath_args, target.rpath_dirs_to_remove) = \
     2782#                    linker.build_rpath_args(self.environment,
     2783#                                            self.environment.get_build_dir(),
     2784#                                            target_slashname_workaround_dir,
     2785#                                            self.determine_rpath_dirs(target),
     2786#                                            target.build_rpath,
     2787#                                            target.install_rpath)
     2788#        commands += rpath_args
    27892789        # Add libraries generated by custom targets
    27902790        custom_target_libraries = self.get_custom_target_provided_libraries(target)
    27912791        commands += extra_args