aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/extend/os
diff options
context:
space:
mode:
Diffstat (limited to 'Library/Homebrew/extend/os')
-rw-r--r--Library/Homebrew/extend/os/linux/extend/pathname.rb19
-rw-r--r--Library/Homebrew/extend/os/mac/extend/pathname.rb5
-rw-r--r--Library/Homebrew/extend/os/mac/hardware/cpu.rb2
-rw-r--r--Library/Homebrew/extend/os/pathname.rb5
4 files changed, 29 insertions, 2 deletions
diff --git a/Library/Homebrew/extend/os/linux/extend/pathname.rb b/Library/Homebrew/extend/os/linux/extend/pathname.rb
new file mode 100644
index 000000000..eb6ea409b
--- /dev/null
+++ b/Library/Homebrew/extend/os/linux/extend/pathname.rb
@@ -0,0 +1,19 @@
+class Pathname
+ # @private
+ def elf?
+ # See: https://en.wikipedia.org/wiki/Executable_and_Linkable_Format#File_header
+ read(4) == "\x7fELF"
+ end
+
+ # @private
+ def dynamic_elf?
+ if which "readelf"
+ popen_read("readelf", "-l", to_path).include?(" DYNAMIC ")
+ elsif which "file"
+ !popen_read("file", "-L", "-b", to_path)[/dynamic|shared/].nil?
+ else
+ raise StandardError, "Neither `readelf` nor `file` is available "\
+ "to determine whether '#{self}' is dynamically or statically linked."
+ end
+ end
+end
diff --git a/Library/Homebrew/extend/os/mac/extend/pathname.rb b/Library/Homebrew/extend/os/mac/extend/pathname.rb
new file mode 100644
index 000000000..5fd59e1e7
--- /dev/null
+++ b/Library/Homebrew/extend/os/mac/extend/pathname.rb
@@ -0,0 +1,5 @@
+require "os/mac/mach"
+
+class Pathname
+ include MachOShim
+end
diff --git a/Library/Homebrew/extend/os/mac/hardware/cpu.rb b/Library/Homebrew/extend/os/mac/hardware/cpu.rb
index b97c280cd..a216db6ae 100644
--- a/Library/Homebrew/extend/os/mac/hardware/cpu.rb
+++ b/Library/Homebrew/extend/os/mac/hardware/cpu.rb
@@ -1,5 +1,3 @@
-require "os/mac/pathname"
-
module Hardware
class CPU
class << self
diff --git a/Library/Homebrew/extend/os/pathname.rb b/Library/Homebrew/extend/os/pathname.rb
new file mode 100644
index 000000000..5e6edeb30
--- /dev/null
+++ b/Library/Homebrew/extend/os/pathname.rb
@@ -0,0 +1,5 @@
+if OS.mac?
+ require "extend/os/mac/extend/pathname"
+elsif OS.linux?
+ require "extend/os/linux/extend/pathname"
+end