[#46105] [ruby-trunk - Feature #6687][Open] Enumerable#with — "merborne (kyo endo)" <redmine@...>

14 messages 2012/07/02

[#46133] [ruby-trunk - Feature #6688][Open] Object#replace — "prijutme4ty (Ilya Vorontsov)" <prijutme4ty@...>

24 messages 2012/07/03

[#46160] [ruby-trunk - Feature #6693][Open] Don't warn for unused variables starting with _ — "marcandre (Marc-Andre Lafortune)" <ruby-core@...>

15 messages 2012/07/04

[#46200] [ruby-trunk - Bug #6702][Open] Date should be either required or not — "rosenfeld (Rodrigo Rosenfeld Rosas)" <rr.rosas@...>

14 messages 2012/07/05

[#46296] [ruby-trunk - Feature #6717][Open] Method like #instance_eval that returns self (like #tap) — "alexeymuranov (Alexey Muranov)" <redmine@...>

10 messages 2012/07/10

[#46320] [ruby-trunk - Feature #6721][Open] Object#yield_self — "alexeymuranov (Alexey Muranov)" <redmine@...>

25 messages 2012/07/11

[#46339] [ruby-trunk - Bug #6724][Open] waaaaaaant! ( — "zenspider (Ryan Davis)" <redmine@...>

11 messages 2012/07/11

[#46377] [ruby-trunk - Feature #6727][Open] Add Array#rest (with implementation) — "duckinator (Nick Markwell)" <nick@...>

25 messages 2012/07/13

[#46492] [ruby-trunk - Feature #6737][Open] Add Hash#read and alias as #[]. — "trans (Thomas Sawyer)" <transfire@...>

12 messages 2012/07/15

[#46500] [ruby-trunk - Feature #6739][Open] One-line rescue statement should support specifying an exception class — Quintus (Marvin Gülker) <sutniuq@...>

22 messages 2012/07/15

[#46562] [ruby-trunk - Feature #6758][Open] Object#sequence — "merborne (kyo endo)" <redmine@...>

19 messages 2012/07/20

[#46574] [ruby-trunk - Feature #6762][Open] Control interrupt timing — "ko1 (Koichi Sasada)" <redmine@...>

39 messages 2012/07/20

[#46641] [ruby-trunk - Bug #6780][Open] cannot compile zlib module, when cross-compiling. — "jinleileiking (lei king)" <jinleileiking@...>

14 messages 2012/07/23

[#46659] [ruby-trunk - Bug #6783][Open] Infinite loop in inspect, not overriding inspect, to_s, and no known circular references. Stepping into inspect in debugger locks it up with 100% CPU. — "garysweaver (Gary Weaver)" <garysweaver@...>

8 messages 2012/07/23

[#46792] [ruby-trunk - Bug #6799][Open] Digest::*.hexdigest returns an ASCII-8BIT String — "Eregon (Benoit Daloze)" <redmine@...>

11 messages 2012/07/26

[#46799] [ruby-trunk - Feature #6801][Open] String#~ for a here document — "merborne (kyo endo)" <redmine@...>

12 messages 2012/07/27

[#46829] [ruby-trunk - Feature #6806][Open] Support functional programming: forbid instance/class variables for ModuleName::method_name, allow for ModuleName.method_name — "alexeymuranov (Alexey Muranov)" <redmine@...>

7 messages 2012/07/28

[#46832] [ruby-trunk - Bug #6807][Open] Can't compile ruby without ruby — "devcurmudgeon (Paul Sherwood)" <storitel@...>

13 messages 2012/07/28

[#46834] [ruby-trunk - Feature #6808][Open] Implicit index for enumerations — "trans (Thomas Sawyer)" <transfire@...>

15 messages 2012/07/28

[#46838] [ruby-trunk - Bug #6810][Open] `module A::B; end` is not equivalent to `module A; module B; end; end` with respect to constant lookup (scope) — "alexeymuranov (Alexey Muranov)" <redmine@...>

17 messages 2012/07/28

[#46896] (Half-baked DRAFT) new `require' framework — SASADA Koichi <ko1@...>

Hi,

22 messages 2012/07/31

[ruby-core:46496] Re: pkg-config on aix

From: Perry Smith <pedzsan@...>
Date: 2012-07-15 18:38:47 UTC
List: ruby-core #46496
On Jul 14, 2012, at 4:58 PM, Perry Smith wrote:

> I put pkg-config back into my path and tried to build ruby.  I'm building ruby-1.9.3-p194 on AIX 6100-07-03-1207.   The configure pass ends with this error:
> 
>> Variable 'TARGET' not defined in './ruby.tmp.pc'
> 
> 
> The ruby.tmp.pc file for AIX ends up with this line:
> 
>> DLDFLAGS=-eInit_${TARGET}
> 
> 
> This is related to the other question(s) I had but in this case, I don't see a way to fix this at all.  I don't know pkg-config much but I'm not seeing a way to get target dependent variables into the pkg-config .pc file.
> 
> I moved up to pkg-config 0.27. I tried 0.25 before with the same result.
> 
> I tried not using pkg-config but when I try to build a ruby extension, (event machine in this case), the mkmf is confused.  It is doing a static link but looking for the shared library -lruby.  In that case, ld will look for libruby.a but there is not one.  I could create one by hand but I'm trying to understand the direction the ruby project is trying to take.
> 
> So that is why I decided to put pkg-config back into my path and see if I can make it work that way.  But, so far, I can't.
> 
> I got shared libraries working with ruby 1.9.2 but all those tricks are not working with 1.9.3 at this point.
> 
> Can someone help me understand how this is intended to work?

Here are three alternatives to approach / fix this issue:

A prefix: TARGET changes to TARGET_NAME depending upon which version / patches of ruby you have.  But, lets just stick with TARGET for this example.
=========
First approach:

Add this to ruby.pc:

TARGET=TARGET

Now, this passes:

PKG_CONFIG_PATH=. pkg-config --print-errors ruby.tmp

and to use it, people can do:

PKG_CONFIG_PATH=. pkg-config --define-variable=TARGET=foo --libs ruby.tmp

which gives:

-eInit_foo -L/usr/local/lib -lruby -lpthread -lrt -ldl -lcrypt -lm  
=========
Second approach:

Leave out the TARGET=TARGET line and call pkg-config in config.status this way:

PKG_CONFIG_PATH=. pkg-config --define-variable=TARGET=foo --print-errors ruby.tmp

The call to pkg-config would be the same as the first approach.  This is nice because now calling pkg-config without defining TARGET fails instead of producing a worthless output.

e.g.

PKG_CONFIG_PATH=. pkg-config --libs ruby.tmp

produces:

Variable 'TARGET' not defined in './ruby.tmp.pc'

and an exit status of 1.  I think this is my favorite.
=========
Third approach:

Change this line:

DLDFLAGS=-eInit_${TARGET}

to

DLDFLAGS=-eInit_$(TARGET)

Now this passes:

PKG_CONFIG_PATH=. pkg-config --print-errors ruby.tmp

The normal ussage call:

PKG_CONFIG_PATH=. pkg-config --libs ruby.tmp

produces:

-eInit_$(TARGET) -L/usr/local/lib -lruby -lpthread -lrt -ldl -lcrypt -lm

With radical Makefile gymnastics such as (foo.mk)
---------
TARGET=foo
$(eval F=$(shell PKG_CONFIG_PATH=. pkg-config --libs ruby.tmp) )

all:
        @echo $(F)
---------
The command:

make -f foo.mk

produces:

-eInit_foo -L/usr/local/lib -lruby -lpthread -lrt -ldl -lcrypt -lm
=========

None of these 100% conforms to standard pkg-config usage which is where I start to get confused again.  Ruby has the tradition of extconf.rb using mkmr.rb and that does not need to use pkg-config for this part of the processing.  I'm not clear what the final goal is.

I hope this helps someone...

Perry



In This Thread

Prev Next