mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Supports static linking of extensions and encodings again.
Fixes --with-static-linked-ext. Patch by Google Inc. [ruby-core:45073]. * Makefile.in (ENCOBJS, EXTOBJS): New variables to specify static linked libraries. Also reintroduces extinit.o, introduces encinit.o introduces encinit.o * common.mk: Builds static libraries rather than shared objects if specified. * configure.in (LD): new substitution. Avoids PIE if s * enc/depend: Supports static linked libraries (libencs, libenc, libtrans): New target. * enc/encinit.c.erb: new template to generate the initialization of statically linked encodings. * enc/make_encmake.rb (--module): new flag to specify whether static or dynamic. * transcode_data.h (TRANS_INIT): New macro to get rid of the name collision of encoding initializers and transcoder initializers. * ext/extmk.rb: Fixes the behavior on $extstatic is true. * lib/mkmf.rb (clean-static): new target to clean up static linked libraries. * ruby.c (process_options): New initializes statically linked encodings here. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35662 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
0923ae5ed1
commit
3fa3f9abb9
31 changed files with 306 additions and 129 deletions
26
enc/encinit.c.erb
Normal file
26
enc/encinit.c.erb
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
<%# -*- encoding: UTF-8 -*-%>
|
||||
/* Copyright 2012 Google Inc. Some Rights Reserved.
|
||||
* Author: yugui@google.com (Yugui Sonoda)
|
||||
*/
|
||||
#include <stdio.h>
|
||||
|
||||
#define init(func, name) { \
|
||||
extern void func(void); \
|
||||
ruby_init_ext(name, func); \
|
||||
}
|
||||
|
||||
void ruby_init_ext(const char *name, void (*init)(void));
|
||||
|
||||
void Init_enc()
|
||||
{
|
||||
<% ENCS.each do |enc| -%>
|
||||
init(Init_<%= enc %>, "enc/<%= enc %>.so");
|
||||
<% end -%>
|
||||
|
||||
init(Init_transdb, "enc/trans/transdb.so");
|
||||
<% TRANS.each do |trans| -%>
|
||||
<% next if trans == 'trans/transdb' -%>
|
||||
init(Init_trans_<%= File.basename trans %>, "enc/<%= trans %>.so");
|
||||
<% end -%>
|
||||
}
|
||||
<%# vim: set fenc=utf-8 ft=eruby sw=2 : -%>
|
||||
Loading…
Add table
Add a link
Reference in a new issue