From: Perry Smith Date: 2012-07-09T12:53:51+09:00 Subject: [ruby-core:46259] Re: building ruby-1.9.3-p194 on AIX 6.1 TL05 SP06 --Apple-Mail=_7ED383E5-71C2-4605-B92F-41A4BB7E740F Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=iso-8859-1 On Jul 8, 2012, at 12:58 PM, Perry Smith wrote: >=20 > On Jul 8, 2012, at 10:07 AM, Perry Smith wrote: >=20 >>=20 >> On Jul 8, 2012, at 9:56 AM, Yutaka Kanemoto wrote: >>=20 >>> Hi Perry >>>=20 >>> Is it possible for you to try latest SP like SP8 (for TL5)? SP5 is a >>> bit old. I have ever seen similar error before, and it was = disappeared >>> after applying latest SP. >>=20 >> Yea. I can try that. But trying to understand this code, it = confuses me. It is looking for an entry point of Init_dot.dot but the = code is simply: >>=20 >> void Init_dot(void) {} >>=20 >> So, I don't see how the linker is going to be happy. >>=20 >> I tracked down that this is a test for a feature to "ignore rest from = first dot" but I don't have enough context to figure out what that = means. >=20 > FYI: I moved to another host running at 6.1 TL07 SP03 and get the same = issue. >=20 > I could remove it from the build sequence but I'm guessing there is a = test that depends upon it and that test will fail. >=20 > Let me know your thoughts.. Well... I found the context. Revision 30464[1] and Revision 30480[2]. = I think [2] is incomplete. Maybe? I have not figured out how all this works yet but I did track it back to = this line in my rbconfig.rb file: CONFIG["DLDFLAGS"] =3D "-eInit_$(TARGET)" As I'm guessing, the feature is so people can have a file, in this case = dot.dot.c, and create a ruby extension but the init entry point will be = called Init_dot instead of Init_dot.dot. I can't say that (assuming = that much is correct) how or why that would be desired but that is = another matter. That line, it appears, comes from configure: > aix*) : > : ${LDSHARED=3D'$(CC)'} > LDSHARED=3D"$LDSHARED ${linker_flag}-G" > ! DLDFLAGS=3D'-eInit_$(TARGET)' > XLDFLAGS=3D"${linker_flag}"'-bE:$(ARCHFILE)'" = ${linker_flag}-brtl" > XLDFLAGS=3D"$XLDFLAGS = ${linker_flag}-blibpath:${prefix}/lib:${LIBPATH:-/usr/lib:/lib}" > : ${ARCHFILE=3D"ruby.imp"} I'm trying different GNU Make fixes but so far it isn't working. That = same construct also goes into the ruby-1.9.pc. On a tangential note, I = had to remove pkg-config from my path because it complained about = Variable TARGET is undefined. The two may be related -- I don't know. [1] = http://bugs.ruby-lang.org/projects/ruby-trunk/repository/revisions/30464 [2] = http://bugs.ruby-lang.org/projects/ruby-trunk/repository/revisions/30480 --Apple-Mail=_7ED383E5-71C2-4605-B92F-41A4BB7E740F Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=iso-8859-1

On = Jul 8, 2012, at 10:07 AM, Perry Smith wrote:


On Jul 8, 2012, = at 9:56 AM, Yutaka Kanemoto wrote:

Hi Perry

Is it possible for you to try = latest SP like SP8 (for TL5)? SP5 is = a
bit old. I have ever seen similar error before, and it was = disappeared
after applying latest = SP.

Yea.  I = can try that.  But trying to understand this code, it confuses me. =  It is looking for an entry point of Init_dot.dot but the code is = simply:

void = Init_dot(void) {}

So, I don't see = how the linker is going to be happy.

I tracked down = that this is a test for a feature to "ignore rest from first dot" but I = don't have enough context to figure out what that = means.

FYI: I moved to another host running at 6.1 = TL07 SP03 and get the same issue.

I could remove it from the = build sequence but I'm guessing there is a test that depends upon it and = that test will fail.

Let me know your = thoughts..

Well... I found the = context.  Revision 30464[1] and Revision 30480[2].  I = think [2] is incomplete.  Maybe?

I have = not figured out how all this works yet but I did track it back to this = line in my rbconfig.rb file:

  = CONFIG["DLDFLAGS"] =3D "-eInit_$(TARGET)"

As I'm = guessing, the feature is so people can have a file, in this case = dot.dot.c, and create a ruby extension but the init entry point will be = called Init_dot instead of Init_dot.dot.  I can't say that = (assuming that much is correct) how or why that would be desired but = that is another matter.

That line, it appears, = comes from configure:

    aix*) :
        = : ${LDSHARED=3D'$(CC)'}
              =           LDSHARED=3D"$LDSHARED = ${linker_flag}-G"
!               =         = DLDFLAGS=3D'-eInit_$(TARGET)'
        =                 = XLDFLAGS=3D"${linker_flag}"'-bE:$(ARCHFILE)'" = ${linker_flag}-brtl"
              =           XLDFLAGS=3D"$XLDFLAGS = ${linker_flag}-blibpath:${prefix}/lib:${LIBPATH:-/usr/lib:/lib}"
    =                     : = ${ARCHFILE=3D"ruby.imp"}

I'm trying different GNU Make fixes but so far it isn't working. =  That same construct also goes into the ruby-1.9.pc.  On a = tangential note, I had to remove pkg-config from my path because it = complained about Variable TARGET is undefined.  The two may be = related -- I don't know.

[1] http://bugs.ruby-lang.org/projects/ruby-trunk/repository/revisions= /30464
[2] http://bugs.ruby-lang.org/projects/ruby-trunk/repository/revisions= /30480

= --Apple-Mail=_7ED383E5-71C2-4605-B92F-41A4BB7E740F--