~ubuntu-branches/ubuntu/quantal/ruby1.9.1/quantal

« back to all changes in this revision

Viewing changes to win32/mkexports.rb

  • Committer: Bazaar Package Importer
  • Author(s): Lucas Nussbaum
  • Date: 2010-07-31 17:08:39 UTC
  • mfrom: (1.1.4 upstream) (8.1.2 sid)
  • Revision ID: james.westby@ubuntu.com-20100731170839-j034dmpdqt1cc4p6
Tags: 1.9.2~svn28788-1
* New release based on upstream snapshot from the 1.9.2 branch,
  after 1.9.2 RC2. That branch is (supposed to be) binary-compatible
  with the 1.9.1 branch.
  + Builds fine on i386. Closes: #580852.
* Upgrade to Standards-Version: 3.9.1. No changes needed.
* Updated generated incs.
* Patches that still need work:
  + Unclear status, need more investigation:
   090729_fix_Makefile_deps.dpatch
   090803_exclude_rdoc.dpatch
   203_adjust_base_of_search_path.dpatch
   902_define_YAML_in_yaml_stringio.rb.dpatch
   919_common.mk_tweaks.dpatch
   931_libruby_suffix.dpatch
   940_test_thread_mutex_sync_shorter.dpatch
  + Maybe not needed anymore, keeping but not applying.
   102_skip_test_copy_stream.dpatch (test doesn't block anymore?)
   104_skip_btest_io.dpatch (test doesn't block anymore?)
   201_gem_prelude.dpatch (we don't use that rubygems anyway?)
   202_gem_default_dir.dpatch (we don't use that rubygems anyway?)
   940_test_file_exhaustive_fails_as_root.dpatch
   940_test_priority_fails.dpatch
   100518_load_libc_libm.dpatch
* Add disable-tests.diff: disable some tests that cause failures on FreeBSD.
  Closes: #590002, #543805, #542927.
* However, many new failures on FreeBSD. Since that version is still an
  improvement, add the check that makes test suite failures non-fatal on
  FreeBSD again. That still needs to be investigated.
* Re-add 903_skip_base_ruby_check.dpatch
* Add build-dependency on ruby1.8 and drop all pre-generated files.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!./miniruby -s
 
1
#!./miniruby -sI.
2
2
 
3
3
$name = $library = $description = nil
4
4
 
5
5
module RbConfig
6
 
  autoload :CONFIG, "rbconfig"
 
6
  autoload :CONFIG, "./rbconfig"
7
7
end
8
8
 
9
9
class Exports
10
 
  @subclass = []
 
10
  @@subclass = []
11
11
  def self.inherited(klass)
12
 
    @subclass << [/#{klass.name.sub(/.*::/, '').downcase}/i, klass]
 
12
    @@subclass << [/#{klass.name.sub(/.*::/, '').downcase}/i, klass]
13
13
  end
14
14
 
15
15
  def self.create(*args, &block)
16
16
    platform = RUBY_PLATFORM
17
 
    pat, klass = @subclass.find {|p, k| p =~ platform}
 
17
    pat, klass = @@subclass.find {|p, k| p =~ platform}
18
18
    unless klass
19
19
      raise ArgumentError, "unsupported platform: #{platform}"
20
20
    end
51
51
      end
52
52
    end
53
53
    syms["NtInitialize"] ||= "ruby_sysinit" if syms["ruby_sysinit"]
54
 
    syms["rb_w32_vsnprintf"] ||= "vsnprintf"
55
 
    syms["rb_w32_snprintf"] ||= "snprintf"
 
54
    syms["rb_w32_vsnprintf"] ||= "ruby_vsnprintf"
 
55
    syms["rb_w32_snprintf"] ||= "ruby_snprintf"
56
56
    @syms = syms
57
57
  end
58
58
 
110
110
          next unless l.sub!(/.*?\s(\(\)\s+)?External\s+\|\s+/, '')
111
111
          is_data = !$1
112
112
          if noprefix or /^[@_]/ =~ l
113
 
            next if /(?!^)@.*@/ =~ l || /@[[:xdigit:]]{16}$/ =~ l || /^_DllMain@/ =~ l
 
113
            next if /(?!^)@.*@/ =~ l || /@[[:xdigit:]]{8,16}$/ =~ l || /^_DllMain@/ =~ l
114
114
            l.sub!(/^[@_]/, '') if /@\d+$/ !~ l
115
115
          elsif !l.sub!(/^(\S+) \([^@?\`\']*\)$/, '\1')
116
116
            next
128
128
  end
129
129
end
130
130
 
131
 
class Exports::Mingw < Exports
 
131
class Exports::Cygwin < Exports
132
132
  def self.nm
133
133
    @@nm ||= RbConfig::CONFIG["NM"]
134
134
  end
144
144
  def each_export(objs)
145
145
    objdump(objs) do |l|
146
146
      next if /@.*@/ =~ l
147
 
      yield $2, !$1 if /\s(?:(T)|[[:upper:]])\s_((?!Init_|DllMain@).*)$/ =~ l
 
147
      yield $2, !$1 if /\s(?:(T)|[[:upper:]])\s_((?!Init_|.*_threadptr_|DllMain@).*)$/ =~ l
148
148
    end
 
149
  end
 
150
end
 
151
 
 
152
class Exports::Mingw < Exports::Cygwin
 
153
  def each_export(objs)
 
154
    super
149
155
    yield "strcasecmp", "_stricmp"
150
156
    yield "strncasecmp", "_strnicmp"
151
157
  end