rbbcc 0.8.0 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5b46fa6dd0b99e4a178bc00bad497beab5d72426517f3d7b328c29d492e9e8a1
4
- data.tar.gz: a5f84fdc89d50621b3dd06eca22aea243efc1991ec053acece136016ccbdfb64
3
+ metadata.gz: 21812e821d8cced71e6942b17c96800e6ac9c8fcbb3f09abffea3dd755b41365
4
+ data.tar.gz: 1c9d332fd7394ba8e0b4ca027335e4a02cc39ae5d3445e2103cf23b29cca6ccf
5
5
  SHA512:
6
- metadata.gz: 532f1d544b56d82e68d5931aac278bf36a850943c3e78e8851c59e56852ebe4f6a3d974fa6c129544f0c7f895696bd9b894f3d033490faff8c408bbd7deed424
7
- data.tar.gz: 03de507c9094d850d77253610d2ffe08e2ee4ad97048e742f4c283ce6d8748de68f019a0e247ac826b5cbcbd48664a359ec57c92113f5f4015bc0c0f1984b482
6
+ metadata.gz: 19b29f9942f91dc22bedd627879f967dde601a864678958f4d047b79302714ba68ab9eda5b4e260f987be7dcc5792b480bc14f92ac117af7da7a79e0092cfa44
7
+ data.tar.gz: 3dd4df07f67f833b3e2157053ff0aa5a138dd65c907f40486845fe619553030711b5622f494142d7ca1fe66b0bebf31fa563e71e36ff9184bef71fc32bfb0116
@@ -1,18 +1,18 @@
1
1
  name: Tests
2
2
  on:
3
3
  push:
4
- branches: [ default ]
4
+ branches: [ master ]
5
5
  pull_request:
6
- branches: [ default ]
6
+ branches: [ master ]
7
7
 
8
8
  jobs:
9
9
  test:
10
10
  strategy:
11
11
  matrix:
12
- libbcc_version: [0.17.0, 0.16.0, 0.12.0]
13
- ruby_version: [2.7.2, 3.0.0]
12
+ libbcc_version: [0.17.0]
13
+ ruby_version: [3.0.0]
14
14
 
15
- runs-on: ubuntu-18.04
15
+ runs-on: ubuntu-latest
16
16
  steps:
17
17
  - uses: actions/checkout@v2
18
18
  - name: Login to ghcr.io
@@ -35,4 +35,4 @@ jobs:
35
35
  rbbcc-ci-${{ matrix.libbcc_version }}-${{ matrix.ruby_version }} \
36
36
  /bin/bash -c \
37
37
  'cd /rbbcc && bundle install && bundle exec rake test'"
38
-
38
+
data/Gemfile.lock CHANGED
@@ -8,7 +8,7 @@ GIT
8
8
  PATH
9
9
  remote: .
10
10
  specs:
11
- rbbcc (0.8.0)
11
+ rbbcc (0.9.1)
12
12
 
13
13
  GEM
14
14
  remote: https://rubygems.org/
@@ -16,24 +16,33 @@ GEM
16
16
  appbundler (0.13.4)
17
17
  mixlib-cli (>= 1.4, < 3.0)
18
18
  mixlib-shellout (>= 2.0, < 4.0)
19
- chef-utils (17.10.0)
19
+ chef-utils (19.2.12)
20
20
  concurrent-ruby
21
21
  coderay (1.1.3)
22
- concurrent-ruby (1.1.10)
23
- method_source (1.0.0)
24
- minitest (5.16.1)
22
+ concurrent-ruby (1.3.6)
23
+ drb (2.2.3)
24
+ io-console (0.8.2)
25
+ method_source (1.1.0)
26
+ minitest (6.0.2)
27
+ drb (~> 2.0)
28
+ prism (~> 1.5)
25
29
  mixlib-cli (2.1.8)
26
- mixlib-shellout (3.2.7)
30
+ mixlib-shellout (3.4.10)
27
31
  chef-utils
28
- pry (0.14.1)
32
+ prism (1.9.0)
33
+ pry (0.16.0)
29
34
  coderay (~> 1.1)
30
35
  method_source (~> 1.0)
31
- rake (13.0.6)
32
- specific_install (0.3.7)
36
+ reline (>= 0.6.0)
37
+ rake (13.3.1)
38
+ reline (0.6.3)
39
+ io-console (~> 0.5)
40
+ specific_install (0.3.8)
33
41
 
34
42
  PLATFORMS
35
43
  aarch64-linux
36
44
  arm64-darwin-21
45
+ arm64-darwin-25
37
46
 
38
47
  DEPENDENCIES
39
48
  appbundler
data/lib/rbbcc/bcc.rb CHANGED
@@ -231,34 +231,31 @@ module RbBCC
231
231
  hdr_file = BCC._find_file(hdr_file)
232
232
  end
233
233
 
234
- if src_file && src_file.end_with?(".b")
235
- @module = Clib.bpf_module_create_b(src_file, hdr_file, debug, dev_name)
236
- else
237
- if src_file
238
- text = File.read(src_file)
239
- end
234
+ if src_file
235
+ text = File.read(src_file)
236
+ end
240
237
 
241
- @usdt_contexts = usdt_contexts
242
- if code = gen_args_from_usdt
243
- text = code + text
244
- end
238
+ @usdt_contexts = usdt_contexts
239
+ if code = gen_args_from_usdt
240
+ text = code + text
241
+ end
245
242
 
246
243
 
247
- cflags_safe = if cflags.empty? or !cflags[-1].nil?
248
- cflags + [nil]
249
- else
250
- cflags
251
- end
244
+ cflags_safe = if cflags.empty? or !cflags[-1].nil?
245
+ cflags + [nil]
246
+ else
247
+ cflags
248
+ end
249
+
250
+ @module = Clib.do_bpf_module_create_c_from_string(
251
+ text,
252
+ debug,
253
+ cflags_safe.pack("p*"),
254
+ cflags_safe.size,
255
+ allow_rlimit,
256
+ dev_name
257
+ )
252
258
 
253
- @module = Clib.do_bpf_module_create_c_from_string(
254
- text,
255
- debug,
256
- cflags_safe.pack("p*"),
257
- cflags_safe.size,
258
- allow_rlimit,
259
- dev_name
260
- )
261
- end
262
259
  @funcs = {}
263
260
  @tables = {}
264
261
  @perf_buffers = {}
data/lib/rbbcc/clib.rb CHANGED
@@ -24,13 +24,27 @@ module RbBCC
24
24
  @@libbcc_version >= Gem::Version.new(ver)
25
25
  end
26
26
 
27
- extend Fiddle::Importer
28
- targets = %w(0.18.0 0.17.0 0.16.0 0.15.0 0.14.0 0.13.0 0.12.0 0.11.0 0.10.0)
29
- if default_load = ENV['LIBBCC_VERSION']
30
- targets.unshift(default_load)
31
- targets.uniq!
27
+ def self.system_libbcc_versions
28
+ paths = ['/usr/lib', '/usr/lib64', '/usr/local/lib', '/usr/lib/x86_64-linux-gnu'].freeze
29
+ candidates = paths.flat_map do |path|
30
+ Dir.glob("#{path}/libbcc.so.[0-9]*")
31
+ end
32
+
33
+ candidates.map do |path|
34
+ path.match(/libbcc\.so\.([\d.]+)/)&.captures&.first
35
+ end.compact.uniq.sort_by { |v| Gem::Version.new(v) }.reverse
36
+ rescue
37
+ []
32
38
  end
33
39
 
40
+ extend Fiddle::Importer
41
+
42
+ targets = if (env_ver = ENV['LIBBCC_VERSION'])
43
+ [env_ver]
44
+ else
45
+ self.system_libbcc_versions
46
+ end
47
+ raise LoadError, "no target libbcc to load" if targets.empty?
34
48
  targets.each do |to_load|
35
49
  begin
36
50
  dlload "libbcc.so.#{to_load}"
@@ -44,7 +58,6 @@ module RbBCC
44
58
  end
45
59
  typealias "size_t", "int"
46
60
 
47
- extern 'void * bpf_module_create_b(char *filename, char *proto_filename, unsigned int flags, char *dev_name)'
48
61
  extern 'int bpf_num_functions(void *)'
49
62
  extern 'char * bpf_function_name(void *, int)'
50
63
  extern 'void bpf_module_destroy(void *)'
data/lib/rbbcc/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module RbBCC
2
- VERSION = "0.8.0"
2
+ VERSION = "0.9.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbbcc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Uchio Kondo
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2024-02-13 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies: []
13
12
  description: BCC port for MRI. See https://github.com/iovisor/bcc
14
13
  email:
@@ -112,7 +111,6 @@ homepage: https://github.com/udzura/rbbcc
112
111
  licenses:
113
112
  - Apache-2.0
114
113
  metadata: {}
115
- post_install_message:
116
114
  rdoc_options: []
117
115
  require_paths:
118
116
  - lib
@@ -127,8 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
127
125
  - !ruby/object:Gem::Version
128
126
  version: '0'
129
127
  requirements: []
130
- rubygems_version: 3.4.0.dev
131
- signing_key:
128
+ rubygems_version: 4.0.6
132
129
  specification_version: 4
133
130
  summary: BCC port for MRI
134
131
  test_files: []