Project

General

Profile

Actions

Bug #14135

closed

SPARC build errors remove SPARC_BLD link option from lib/krb5/plugins/kdb/ldap/Makefile.com

Added by Klaus Ziegler 23 days ago. Updated 8 days ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
kernel
Start date:
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
guidance, ldap, kdb, plugins, krb5, lib following idmap, kadmin
Gerrit CR:

Description

This fixes the following build errors on SPARC:

ld: guidance: removal of unused dependency recommended: libc.so.1
ld: guidance: see ld(1) -z guidance for more information
ld: guidance: removal of unused dependency recommended: libc.so.1
ld: guidance: see ld(1) -z guidance for more information
dmake: Warning: Target `install' not remade because of errors
The following command caused the error:
dmake: Warning: Target `install' not remade because of errors
dmake: Warning: Command failed for target `ldap'
dmake: Warning: Target `install' not remade because of errors
dmake: Warning: Command failed for target `kdb'
dmake: Warning: Target `install' not remade because of errors
dmake: Warning: Command failed for target `plugins'
dmake: Warning: Target `install' not remade because of errors
dmake: Warning: Command failed for target `krb5'
dmake: Warning: Target `install' not remade because of errors
dmake: Warning: Command failed for target `lib'
dmake: Warning: Target `install' not remade because of errors
The following command caused the error:
dmake: Warning: Target `install' not remade because of errors
dmake: Warning: Command failed for target `idmap'
dmake: Warning: Target `install' not remade because of errors
The following command caused the error:
dmake: Warning: Target `install' not remade because of errors
dmake: Warning: Command failed for target `kadmin'
dmake: Warning: Target `install' not remade because of errors
dmake: Warning: Command failed for target `krb5'
dmake: Warning: Target `install' not remade because of errors


Related issues

Related to illumos gate - Bug #14073: kdb/ldap: symbol referencing errorsClosedToomas Soome

Actions
Related to illumos gate - Bug #14099: 14073 breaks gcc4 builds on x86, should be SPARC-onlyClosedDan McDonald

Actions
Actions #1

Updated by Klaus Ziegler 23 days ago

  • Gerrit CR set to 1738
Actions #2

Updated by Andy Fiddaman 22 days ago

  • Related to Bug #14073: kdb/ldap: symbol referencing errors added
Actions #3

Updated by Andy Fiddaman 22 days ago

Note that this was only just added in #14073 to /fix/ a breakage on SPARC with gcc10, then made SPARC-only in #14099 to fix a problem on x86.

I think this needs a bit more coordination to find the right solution for for both platforms and different compilers.

Actions #4

Updated by Andy Fiddaman 22 days ago

  • Related to Bug #14099: 14073 breaks gcc4 builds on x86, should be SPARC-only added
Actions #5

Updated by Andy Fiddaman 22 days ago

oisparc:illumos-omnios:upstream_gate% ls -l ./plugins/kdb/ldap/sparc/pics/ldap_exp.o*
-rw-r--r--   1 af       other      31.3K Oct  5 12:11 ./plugins/kdb/ldap/sparc/pics/ldap_exp.o
-rw-r--r--   1 af       other      20.0K Oct  5 11:30 ./plugins/kdb/ldap/sparc/pics/ldap_exp.o.gcc4

the object built with gcc10 has the following in its text segment.

oisparc:illumos-omnios:upstream_gate% dis ./plugins/kdb/ldap/sparc/pics/ldap_exp.o
disassembly for ./plugins/kdb/ldap/sparc/pics/ldap_exp.o

section .text
k5_mutex_lock_update_stats()
    k5_mutex_lock_update_stats:     9d e3 bf a0  save      %sp, -0x60, %sp
    k5_mutex_lock_update_stats+0x4: 81 c7 e0 08  ret
    k5_mutex_lock_update_stats+0x8: 81 e8 00 00  restore
k5_os_nothread_mutex_finish_init()
    k5_os_nothread_mutex_finish_init:     9d e3 bf a0  save      %sp, -0x60, %sp
    k5_os_nothread_mutex_finish_init+0x4: 81 c7 e0 08  ret
    k5_os_nothread_mutex_finish_init+0x8: 91 e8 20 00  restore   %g0, 0x0, %o0
k5_os_nothread_mutex_init()
    k5_os_nothread_mutex_init:            9d e3 bf a0  save      %sp, -0x60, %sp
    k5_os_nothread_mutex_init+0x4:        81 c7 e0 08  ret
    k5_os_nothread_mutex_init+0x8:        91 e8 20 00  restore   %g0, 0x0, %o0
k5_os_nothread_mutex_destroy()
    k5_os_nothread_mutex_destroy:         9d e3 bf a0  save      %sp, -0x60, %sp
    k5_os_nothread_mutex_destroy+0x4:     81 c7 e0 08  ret
    k5_os_nothread_mutex_destroy+0x8:     91 e8 20 00  restore   %g0, 0x0, %o0
k5_os_nothread_mutex_lock()
    k5_os_nothread_mutex_lock:            9d e3 bf a0  save      %sp, -0x60, %sp
    k5_os_nothread_mutex_lock+0x4:        81 c7 e0 08  ret
    k5_os_nothread_mutex_lock+0x8:        91 e8 20 00  restore   %g0, 0x0, %o0
k5_os_nothread_mutex_unlock()
    k5_os_nothread_mutex_unlock:          9d e3 bf a0  save      %sp, -0x60, %sp
    k5_os_nothread_mutex_unlock+0x4:      81 c7 e0 08  ret
    k5_os_nothread_mutex_unlock+0x8:      91 e8 20 00  restore   %g0, 0x0, %o0
k5_pthread_assert_locked()
    k5_pthread_assert_locked:             9d e3 bf a0  save      %sp, -0x60, %sp
    k5_pthread_assert_locked+0x4:         81 c7 e0 08  ret
    k5_pthread_assert_locked+0x8:         81 e8 00 00  restore
k5_pthread_assert_unlocked()
    k5_pthread_assert_unlocked:           9d e3 bf a0  save      %sp, -0x60, %sp
    k5_pthread_assert_unlocked+0x4:       81 c7 e0 08  ret
    k5_pthread_assert_unlocked+0x8:       81 e8 00 00  restore
k5_os_mutex_finish_init()
    k5_os_mutex_finish_init:              9d e3 bf a0  save      %sp, -0x60, %sp
    k5_os_mutex_finish_init+0x4:          81 c7 e0 08  ret
    k5_os_mutex_finish_init+0x8:          91 e8 20 00  restore   %g0, 0x0, %o0
k5_mutex_init_1()
    k5_mutex_init_1:                      9d e3 bf a0  save      %sp, -0x60, %sp
    k5_mutex_init_1+0x4:                  92 10 20 00  clr       %o1
    k5_mutex_init_1+0x8:                  40 00 00 00  call      +0x0          <k5_mutex_init_1+0x8>
    k5_mutex_init_1+0xc:                  90 06 20 08  add       %i0, 0x8, %o0
    k5_mutex_init_1+0x10:                 80 a2 20 00  cmp       %o0, 0x0
    k5_mutex_init_1+0x14:                 12 80 00 05  bne       +0x14         <k5_mutex_init_1+0x28>
    k5_mutex_init_1+0x18:                 82 10 20 73  mov       0x73, %g1
    k5_mutex_init_1+0x1c:                 f2 2e 00 00  stb       %i1, [%i0]
    k5_mutex_init_1+0x20:                 f2 2e 20 01  stb       %i1, [%i0 + 0x1]
    k5_mutex_init_1+0x24:                 c2 2e 20 20  stb       %g1, [%i0 + 0x20]
    k5_mutex_init_1+0x28:                 81 c7 e0 08  ret
    k5_mutex_init_1+0x2c:                 91 e8 00 08  restore   %g0, %o0, %o0
k5_mutex_finish_init_1()
    k5_mutex_finish_init_1:               9d e3 bf a0  save      %sp, -0x60, %sp
    k5_mutex_finish_init_1+0x4:           7f ff ff f0  call      -0x40         <k5_os_mutex_finish_init>
    k5_mutex_finish_init_1+0x8:           90 06 20 08  add       %i0, 0x8, %o0
    k5_mutex_finish_init_1+0xc:           80 a2 20 00  cmp       %o0, 0x0
    k5_mutex_finish_init_1+0x10:          12 80 00 04  bne       +0x10         <k5_mutex_finish_init_1+0x20>
    k5_mutex_finish_init_1+0x14:          01 00 00 00  nop
    k5_mutex_finish_init_1+0x18:          f2 2e 00 00  stb       %i1, [%i0]
    k5_mutex_finish_init_1+0x1c:          f2 2e 20 01  stb       %i1, [%i0 + 0x1]
    k5_mutex_finish_init_1+0x20:          81 c7 e0 08  ret
    k5_mutex_finish_init_1+0x24:          91 e8 00 08  restore   %g0, %o0, %o0
data_eq()
    data_eq:                              9d e3 bf a0  save      %sp, -0x60, %sp
    data_eq+0x4:                          fa 06 20 04  ld        [%i0 + 0x4], %i5
    data_eq+0x8:                          d4 06 60 04  ld        [%i1 + 0x4], %o2
    data_eq+0xc:                          80 a2 80 1d  cmp       %o2, %i5
    data_eq+0x10:                         02 80 00 04  be        +0x10         <data_eq+0x20>
    data_eq+0x14:                         82 10 20 00  clr       %g1
    data_eq+0x18:                         81 c7 e0 08  ret
    data_eq+0x1c:                         91 e8 00 01  restore   %g0, %g1, %o0
    data_eq+0x20:                         d2 06 60 08  ld        [%i1 + 0x8], %o1
    data_eq+0x24:                         40 00 00 00  call      +0x0          <data_eq+0x24>
    data_eq+0x28:                         d0 06 20 08  ld        [%i0 + 0x8], %o0
    data_eq+0x2c:                         80 a0 00 08  cmp       %g0, %o0
    data_eq+0x30:                         82 60 3f ff  subx      %g0, -0x1, %g1
    data_eq+0x34:                         81 c7 e0 08  ret
    data_eq+0x38:                         91 e8 00 01  restore   %g0, %g1, %o0
string2data()
    string2data:                          9d e3 bf a0  save      %sp, -0x60, %sp
    string2data+0x4:                      fa 07 a0 40  ld        [%fp + 0x40], %i5
    string2data+0x8:                      b8 10 00 18  mov       %i0, %i4
    string2data+0xc:                      40 00 00 00  call      +0x0          <string2data+0xc>
    string2data+0x10:                     90 10 00 1c  mov       %i4, %o0
    string2data+0x14:                     d0 27 60 04  st        %o0, [%i5 + 0x4]
    string2data+0x18:                     f8 27 60 08  st        %i4, [%i5 + 0x8]
    string2data+0x1c:                     03 25 c3 a9  sethi     %hi(0x970ea400), %g1
    string2data+0x20:                     82 10 63 02  or        %g1, 0x302, %g1
    string2data+0x24:                     c2 27 40 00  st        %g1, [%i5]
    string2data+0x28:                     81 c7 e0 0c  jmp       %i7 + 0xc
    string2data+0x2c:                     91 e8 00 1d  restore   %g0, %i5, %o0
data_eq_string()
    data_eq_string:                       9d e3 bf 70  save      %sp, -0x90, %sp
    data_eq_string+0x4:                   2f 00 00 00  sethi     %hi(0x0), %l7
    data_eq_string+0x8:                   40 00 00 00  call      +0x0          <data_eq_string+0x8>
    data_eq_string+0xc:                   ae 05 e0 00  add       %l7, 0x0, %l7
    data_eq_string+0x10:                  fa 05 e0 00  ld        [%l7], %i5
    data_eq_string+0x14:                  c2 07 40 00  ld        [%i5], %g1
    data_eq_string+0x18:                  c2 27 bf fc  st        %g1, [%fp - 0x4]
    data_eq_string+0x1c:                  82 10 20 00  clr       %g1
    data_eq_string+0x20:                  82 07 bf f0  add       %fp, -0x10, %g1
    data_eq_string+0x24:                  90 10 00 19  mov       %i1, %o0
    data_eq_string+0x28:                  c2 23 a0 40  st        %g1, [%sp + 0x40]
    data_eq_string+0x2c:                  7f ff ff e9  call      -0x5c         <string2data>
    data_eq_string+0x30:                  01 00 00 00  nop
    data_eq_string+0x34:                  00 00 00 0c  unimp     0xc
    data_eq_string+0x38:                  c2 06 20 08  ld        [%i0 + 0x8], %g1
    data_eq_string+0x3c:                  f6 06 00 00  ld        [%i0], %i3
    data_eq_string+0x40:                  f8 06 20 04  ld        [%i0 + 0x4], %i4
    data_eq_string+0x44:                  c2 27 bf e8  st        %g1, [%fp - 0x18]
    data_eq_string+0x48:                  c2 07 bf f8  ld        [%fp - 0x8], %g1
    data_eq_string+0x4c:                  f6 27 bf e0  st        %i3, [%fp - 0x20]
    data_eq_string+0x50:                  c2 27 bf d8  st        %g1, [%fp - 0x28]
    data_eq_string+0x54:                  f4 1f bf f0  ldd       [%fp - 0x10], %i2
    data_eq_string+0x58:                  f8 27 bf e4  st        %i4, [%fp - 0x1c]
    data_eq_string+0x5c:                  f4 3f bf d0  std       %i2, [%fp - 0x30]
    data_eq_string+0x60:                  92 07 bf d0  add       %fp, -0x30, %o1
    data_eq_string+0x64:                  7f ff ff cc  call      -0xd0         <data_eq>
    data_eq_string+0x68:                  90 07 bf e0  add       %fp, -0x20, %o0
    data_eq_string+0x6c:                  c2 07 bf fc  ld        [%fp - 0x4], %g1
    data_eq_string+0x70:                  fa 07 40 00  ld        [%i5], %i5
    data_eq_string+0x74:                  82 98 40 1d  xorcc     %g1, %i5, %g1
    data_eq_string+0x78:                  ba 10 20 00  clr       %i5
    data_eq_string+0x7c:                  12 80 00 04  bne       +0x10         <data_eq_string+0x8c>
    data_eq_string+0x80:                  b0 10 00 08  mov       %o0, %i0
    data_eq_string+0x84:                  81 c7 e0 08  ret
    data_eq_string+0x88:                  81 e8 00 00  restore
    data_eq_string+0x8c:                  40 00 00 00  call      +0x0          <data_eq_string+0x8c>
    data_eq_string+0x90:                  01 00 00 00  nop
    data_eq_string+0x94:                  01 00 00 00  nop
authdata_eq()
    authdata_eq:                          9d e3 bf a0  save      %sp, -0x60, %sp
    authdata_eq+0x4:                      f8 06 20 04  ld        [%i0 + 0x4], %i4
    authdata_eq+0x8:                      82 10 00 18  mov       %i0, %g1
    authdata_eq+0xc:                      fa 06 60 04  ld        [%i1 + 0x4], %i5
    authdata_eq+0x10:                     80 a7 00 1d  cmp       %i4, %i5
    authdata_eq+0x14:                     12 80 00 0c  bne       +0x30         <authdata_eq+0x44>
    authdata_eq+0x18:                     b0 10 20 00  clr       %i0
    authdata_eq+0x1c:                     fa 00 60 08  ld        [%g1 + 0x8], %i5
    authdata_eq+0x20:                     d4 06 60 08  ld        [%i1 + 0x8], %o2
    authdata_eq+0x24:                     80 a2 80 1d  cmp       %o2, %i5
    authdata_eq+0x28:                     12 80 00 07  bne       +0x1c         <authdata_eq+0x44>
    authdata_eq+0x2c:                     01 00 00 00  nop
    authdata_eq+0x30:                     d2 06 60 0c  ld        [%i1 + 0xc], %o1
    authdata_eq+0x34:                     40 00 00 00  call      +0x0          <authdata_eq+0x34>
    authdata_eq+0x38:                     d0 00 60 0c  ld        [%g1 + 0xc], %o0
    authdata_eq+0x3c:                     80 a0 00 08  cmp       %g0, %o0
    authdata_eq+0x40:                     b0 60 3f ff  subx      %g0, -0x1, %i0
    authdata_eq+0x44:                     81 c7 e0 08  ret
    authdata_eq+0x48:                     81 e8 00 00  restore
store_16_be()
    store_16_be:                          9d e3 bf a0  save      %sp, -0x60, %sp
    store_16_be+0x4:                      83 36 20 08  srl       %i0, 0x8, %g1
    store_16_be+0x8:                      f0 2e 60 01  stb       %i0, [%i1 + 0x1]
    store_16_be+0xc:                      c2 2e 40 00  stb       %g1, [%i1]
    store_16_be+0x10:                     81 c7 e0 08  ret
    store_16_be+0x14:                     81 e8 00 00  restore
store_32_be()
    store_32_be:                          9d e3 bf a0  save      %sp, -0x60, %sp
    store_32_be+0x4:                      b9 36 20 18  srl       %i0, 0x18, %i4
    store_32_be+0x8:                      bb 36 20 10  srl       %i0, 0x10, %i5
    store_32_be+0xc:                      83 36 20 08  srl       %i0, 0x8, %g1
    store_32_be+0x10:                     f8 2e 40 00  stb       %i4, [%i1]
    store_32_be+0x14:                     fa 2e 60 01  stb       %i5, [%i1 + 0x1]
    store_32_be+0x18:                     c2 2e 60 02  stb       %g1, [%i1 + 0x2]
    store_32_be+0x1c:                     f0 2e 60 03  stb       %i0, [%i1 + 0x3]
    store_32_be+0x20:                     81 c7 e0 08  ret
    store_32_be+0x24:                     81 e8 00 00  restore
load_16_be()
    load_16_be:                           9d e3 bf a0  save      %sp, -0x60, %sp
    load_16_be+0x4:                       c2 0e 00 00  ldub      [%i0], %g1
    load_16_be+0x8:                       f0 0e 20 01  ldub      [%i0 + 0x1], %i0
    load_16_be+0xc:                       83 28 60 08  sll       %g1, 0x8, %g1
    load_16_be+0x10:                      b0 16 00 01  or        %i0, %g1, %i0
    load_16_be+0x14:                      81 c7 e0 08  ret
    load_16_be+0x18:                      81 e8 00 00  restore
load_32_be()
    load_32_be:                           9d e3 bf a0  save      %sp, -0x60, %sp
    load_32_be+0x4:                       f8 0e 00 00  ldub      [%i0], %i4
    load_32_be+0x8:                       fa 0e 20 01  ldub      [%i0 + 0x1], %i5
    load_32_be+0xc:                       c2 0e 20 02  ldub      [%i0 + 0x2], %g1
    load_32_be+0x10:                      b9 2f 20 18  sll       %i4, 0x18, %i4
    load_32_be+0x14:                      f0 0e 20 03  ldub      [%i0 + 0x3], %i0
    load_32_be+0x18:                      bb 2f 60 10  sll       %i5, 0x10, %i5
    load_32_be+0x1c:                      83 28 60 08  sll       %g1, 0x8, %g1
    load_32_be+0x20:                      ba 17 40 1c  or        %i5, %i4, %i5
    load_32_be+0x24:                      82 10 40 1d  or        %g1, %i5, %g1
    load_32_be+0x28:                      b0 16 00 01  or        %i0, %g1, %i0
    load_32_be+0x2c:                      81 c7 e0 08  ret
    load_32_be+0x30:                      81 e8 00 00  restore

section .gnu.linkonce.t.__sparc_get_pc_thunk.l7
__sparc_get_pc_thunk.l7()
    __sparc_get_pc_thunk.l7: 81 c3 e0 08  retl
    .gnu.linkonce.t.__sparc_get_pc_thunk.l7+0x4: ae 03 c0 17  add       %o7, %l7, %l7
oisparc:illumos-omnios:upstream_gate% nm ./plugins/kdb/ldap/sparc/pics/ldap_exp.o.gcc4

./plugins/kdb/ldap/sparc/pics/ldap_exp.o.gcc4:

[Index]   Value      Size      Type  Bind  Other Shndx   Name

[3]     |         0|         0|SECT |LOCL |0    |6      |
[5]     |         0|         0|SECT |LOCL |0    |3      |
[7]     |         0|         0|SECT |LOCL |0    |7      |
[8]     |         0|         0|SECT |LOCL |0    |4      |
[2]     |         0|         0|SECT |LOCL |0    |8      |
[6]     |         0|         0|SECT |LOCL |0    |5      |
[4]     |         0|         0|SECT |LOCL |0    |2      |
[17]    |         0|       156|OBJT |GLOB |0    |6      |kdb_function_table
[11]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_alloc
[32]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_close
[9]     |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_create
[10]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_create_password_policy
[33]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_db_get_age
[29]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_delete_password_policy
[14]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_delete_principal
[21]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_delete_realm_1
[13]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_errcode_2_string
[37]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_free
[34]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_free_password_policy
[20]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_free_principal
[16]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_free_supported_realms
[18]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_get_mkey
[38]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_get_password_policy
[28]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_get_principal
[23]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_iterate
[26]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_iterate_password_policy
[19]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_lib_cleanup
[30]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_lib_init
[22]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_lock
[25]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_open
[12]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_put_password_policy
[35]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_put_principal
[31]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_release_errcode_string
[15]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_set_mkey
[24]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_set_option
[36]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_supported_realms
[27]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_unlock
[1]     |         0|         0|FILE |LOCL |0    |ABS    |ldap_exp.c
oisparc:illumos-omnios:upstream_gate% nm ./plugins/kdb/ldap/sparc/pics/ldap_exp.o

./plugins/kdb/ldap/sparc/pics/ldap_exp.o:

[Index]   Value      Size      Type  Bind  Other Shndx   Name

[22]    |         0|         0|SECT |LOCL |0    |7      |
[11]    |         0|         0|SECT |LOCL |0    |5      |
[21]    |         0|         0|SECT |LOCL |0    |9      |
[4]     |         0|         0|SECT |LOCL |0    |10     |
[5]     |         0|         0|SECT |LOCL |0    |3      |
[18]    |         0|         0|SECT |LOCL |0    |4      |
[17]    |         0|         0|SECT |LOCL |0    |11     |
[16]    |         0|         0|SECT |LOCL |0    |2      |
[12]    |         0|         0|SECT |LOCL |0    |8      |
[10]    |         0|         0|SECT |LOCL |0    |6      |
[65]    |         0|         0|NOTY |GLOB |0    |UNDEF  |_GLOBAL_OFFSET_TABLE_
[58]    |         0|         0|FUNC |WEAK |2    |11     |__sparc_get_pc_thunk.l7
[41]    |         0|         0|NOTY |GLOB |0    |UNDEF  |__stack_chk_fail
[64]    |         0|         0|NOTY |GLOB |0    |UNDEF  |__stack_chk_guard
[26]    |       456|        76|FUNC |LOCL |0    |2      |authdata_eq
[8]     |       196|        60|FUNC |LOCL |0    |2      |data_eq
[29]    |       304|       152|FUNC |LOCL |0    |2      |data_eq_string
[7]     |       156|        40|FUNC |LOCL |0    |2      |k5_mutex_finish_init_1
[28]    |       108|        48|FUNC |LOCL |0    |2      |k5_mutex_init_1
[27]    |         0|        12|FUNC |LOCL |0    |2      |k5_mutex_lock_update_stats
[2]     |        96|        12|FUNC |LOCL |0    |2      |k5_os_mutex_finish_init
[9]     |        36|        12|FUNC |LOCL |0    |2      |k5_os_nothread_mutex_destroy
[24]    |        12|        12|FUNC |LOCL |0    |2      |k5_os_nothread_mutex_finish_init
[15]    |        24|        12|FUNC |LOCL |0    |2      |k5_os_nothread_mutex_init
[3]     |        48|        12|FUNC |LOCL |0    |2      |k5_os_nothread_mutex_lock
[20]    |        60|        12|FUNC |LOCL |0    |2      |k5_os_nothread_mutex_unlock
[25]    |        72|        12|FUNC |LOCL |0    |2      |k5_pthread_assert_locked
[23]    |        84|        12|FUNC |LOCL |0    |2      |k5_pthread_assert_unlocked
[42]    |         0|       156|OBJT |GLOB |0    |3      |kdb_function_table
[33]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_alloc
[57]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_close
[31]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_create
[32]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_create_password_policy
[60]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_db_get_age
[54]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_delete_password_policy
[37]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_delete_principal
[46]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_delete_realm_1
[36]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_errcode_2_string
[66]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_free
[61]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_free_password_policy
[45]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_free_principal
[39]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_free_supported_realms
[43]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_get_mkey
[67]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_get_password_policy
[53]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_get_principal
[48]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_iterate
[51]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_iterate_password_policy
[44]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_lib_cleanup
[55]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_lib_init
[47]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_lock
[50]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_open
[34]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_put_password_policy
[62]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_put_principal
[56]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_release_errcode_string
[38]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_set_mkey
[49]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_set_option
[63]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_supported_realms
[52]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_unlock
[1]     |         0|         0|FILE |LOCL |0    |ABS    |ldap_exp.c
[13]    |       596|        28|FUNC |LOCL |0    |2      |load_16_be
[30]    |       624|        52|FUNC |LOCL |0    |2      |load_32_be
[40]    |         0|         0|NOTY |GLOB |0    |UNDEF  |memcmp
[59]    |         0|         0|NOTY |WEAK |0    |UNDEF  |pthread_mutex_init
[19]    |       532|        24|FUNC |LOCL |0    |2      |store_16_be
[6]     |       556|        40|FUNC |LOCL |0    |2      |store_32_be
[14]    |       256|        48|FUNC |LOCL |0    |2      |string2data
[35]    |         0|         0|NOTY |GLOB |0    |UNDEF  |strlen
Actions #6

Updated by Andy Fiddaman 22 days ago

This apparently boils down to this in Makefile.master

        sparc_COPTFLAG=         -xO3
        sparcv9_COPTFLAG=       -xO3
        i386_COPTFLAG=          -O
        amd64_COPTFLAG=         -xO3

and for optimisation levels >= 2, cw adds -fno-unit-at-a-time.

With that, the inline functions in k5-int.h which are included in ldap_exp.c
are retained, and one of them requires SSP. That's the source of the original
error that Toomas saw that led to him adding the -lc in the first place.

ldap_exp.o is built 32-bit and this is why there's a difference between SPARC
and x86 here. I suggest you override that optimisation level for this file
and then remove that $(BLD_SPARC)-lc

Actions #7

Updated by Toomas Soome 21 days ago

Andy Fiddaman wrote in #note-6:

This apparently boils down to this in Makefile.master

[...]

and for optimisation levels >= 2, cw adds -fno-unit-at-a-time.

With that, the inline functions in k5-int.h which are included in ldap_exp.c
are retained, and one of them requires SSP. That's the source of the original
error that Toomas saw that led to him adding the -lc in the first place.

ldap_exp.o is built 32-bit and this is why there's a difference between SPARC
and x86 here. I suggest you override that optimisation level for this file
and then remove that $(BLD_SPARC)-lc

Patch:

tsoome@openindiana:/code/illumos-gate/usr/src/lib/krb5/plugins/kdb/ldap$ git diff master..
diff --git a/usr/src/lib/krb5/plugins/kdb/ldap/Makefile.com b/usr/src/lib/krb5/plugins/kdb/ldap/Makefile.com
index dcdaf24b3d..966241305e 100644
--- a/usr/src/lib/krb5/plugins/kdb/ldap/Makefile.com
+++ b/usr/src/lib/krb5/plugins/kdb/ldap/Makefile.com
@@ -67,7 +67,6 @@ CERRWARN +=   -_gcc=-Wno-unused-function
 DYNFLAGS +=    $(KERBRUNPATH)
 # setting -L $(ROOT)/usr/lib/gss because libkdb_ldap needs mech_krb5
 LDLIBS +=      -L $(ROOT)/usr/lib/gss -L $(ROOTLIBDIR) -lkdb_ldap
-$(SPARC_BLD)LDLIBS += -lc

 .KEEP_STATE:

diff --git a/usr/src/lib/krb5/plugins/kdb/ldap/sparc/Makefile b/usr/src/lib/krb5/plugins/kdb/ldap/sparc/Makefile
index ab75567679..e7acecf30b 100644
--- a/usr/src/lib/krb5/plugins/kdb/ldap/sparc/Makefile
+++ b/usr/src/lib/krb5/plugins/kdb/ldap/sparc/Makefile
@@ -22,9 +22,13 @@
 # Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
-# ident        "%Z%%M% %I%     %E% SMI" 
-#

 include ../Makefile.com

+#
+# Default -xO3 will trigger inclusion of SSP, which we do not need here.
+# illumos issue #14135
+#
+sparc_COPTFLAG=        -O
+
 install: all $(ROOTLIBDIR) $(ROOTLIBS) $(ROOTLINKS)
tsoome@openindiana:/code/illumos-gate/usr/src/lib/krb5/plugins/kdb/ldap$ 

and build result:

tsoome@openindiana:/code/illumos-gate/usr/src/lib/krb5/plugins/kdb/ldap$ nm sparc/pics/ldap_exp.o 

sparc/pics/ldap_exp.o:

[Index]   Value      Size      Type  Bind  Other Shndx   Name

[3]     |         0|         0|SECT |LOCL |0    |3      |
[5]     |         0|         0|SECT |LOCL |0    |4      |
[7]     |         0|         0|SECT |LOCL |0    |2      |
[8]     |         0|         0|SECT |LOCL |0    |7      |
[2]     |         0|         0|SECT |LOCL |0    |8      |
[6]     |         0|         0|SECT |LOCL |0    |6      |
[4]     |         0|         0|SECT |LOCL |0    |5      |
[17]    |         0|       156|OBJT |GLOB |0    |3      |kdb_function_table
[11]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_alloc
[32]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_close
[9]     |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_create
[10]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_create_password_policy
[33]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_db_get_age
[29]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_delete_password_policy
[14]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_delete_principal
[21]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_delete_realm_1
[13]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_errcode_2_string
[37]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_free
[34]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_free_password_policy
[20]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_free_principal
[16]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_free_supported_realms
[18]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_get_mkey
[38]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_get_password_policy
[28]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_get_principal
[23]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_iterate
[26]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_iterate_password_policy
[19]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_lib_cleanup
[30]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_lib_init
[22]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_lock
[25]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_open
[12]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_put_password_policy
[35]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_put_principal
[31]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_release_errcode_string
[15]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_set_mkey
[24]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_set_option
[36]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_supported_realms
[27]    |         0|         0|NOTY |GLOB |0    |UNDEF  |krb5_ldap_unlock
[1]     |         0|         0|FILE |LOCL |0    |ABS    |ldap_exp.c
tsoome@openindiana:/code/illumos-gate/usr/src/lib/krb5/plugins/kdb/ldap$

So, this is real fix. Klaus, do You want to take care of this patch?:)

Actions #8

Updated by Klaus Ziegler 21 days ago

Sure, will do later this afternoon...

Actions #9

Updated by Klaus Ziegler 15 days ago

I did a complete SPARC gate build and here is the result for this object file:

klausz@suntools % nm lib/krb5/plugins/kdb/ldap/sparc/pics/ldap_exp.o

lib/krb5/plugins/kdb/ldap/sparc/pics/ldap_exp.o:

[Index] Value Size Type Bind Other Shndx Name

[3] | 0| 0|SECT |LOCL |0 |6 |
[5] | 0| 0|SECT |LOCL |0 |3 |
[7] | 0| 0|SECT |LOCL |0 |7 |
[8] | 0| 0|SECT |LOCL |0 |4 |
[2] | 0| 0|SECT |LOCL |0 |8 |
[6] | 0| 0|SECT |LOCL |0 |5 |
[4] | 0| 0|SECT |LOCL |0 |2 |
[17] | 0| 156|OBJT |GLOB |0 |6 |kdb_function_table
[11] | 0| 0|NOTY |GLOB |0 |UNDEF |krb5_ldap_alloc
[32] | 0| 0|NOTY |GLOB |0 |UNDEF |krb5_ldap_close
[9] | 0| 0|NOTY |GLOB |0 |UNDEF |krb5_ldap_create
[10] | 0| 0|NOTY |GLOB |0 |UNDEF |krb5_ldap_create_password_policy
[33] | 0| 0|NOTY |GLOB |0 |UNDEF |krb5_ldap_db_get_age
[29] | 0| 0|NOTY |GLOB |0 |UNDEF |krb5_ldap_delete_password_policy
[14] | 0| 0|NOTY |GLOB |0 |UNDEF |krb5_ldap_delete_principal
[21] | 0| 0|NOTY |GLOB |0 |UNDEF |krb5_ldap_delete_realm_1
[13] | 0| 0|NOTY |GLOB |0 |UNDEF |krb5_ldap_errcode_2_string
[37] | 0| 0|NOTY |GLOB |0 |UNDEF |krb5_ldap_free
[34] | 0| 0|NOTY |GLOB |0 |UNDEF |krb5_ldap_free_password_policy
[20] | 0| 0|NOTY |GLOB |0 |UNDEF |krb5_ldap_free_principal
[16] | 0| 0|NOTY |GLOB |0 |UNDEF |krb5_ldap_free_supported_realms
[18] | 0| 0|NOTY |GLOB |0 |UNDEF |krb5_ldap_get_mkey
[38] | 0| 0|NOTY |GLOB |0 |UNDEF |krb5_ldap_get_password_policy
[28] | 0| 0|NOTY |GLOB |0 |UNDEF |krb5_ldap_get_principal
[23] | 0| 0|NOTY |GLOB |0 |UNDEF |krb5_ldap_iterate
[26] | 0| 0|NOTY |GLOB |0 |UNDEF |krb5_ldap_iterate_password_policy
[19] | 0| 0|NOTY |GLOB |0 |UNDEF |krb5_ldap_lib_cleanup
[30] | 0| 0|NOTY |GLOB |0 |UNDEF |krb5_ldap_lib_init
[22] | 0| 0|NOTY |GLOB |0 |UNDEF |krb5_ldap_lock
[25] | 0| 0|NOTY |GLOB |0 |UNDEF |krb5_ldap_open
[12] | 0| 0|NOTY |GLOB |0 |UNDEF |krb5_ldap_put_password_policy
[35] | 0| 0|NOTY |GLOB |0 |UNDEF |krb5_ldap_put_principal
[31] | 0| 0|NOTY |GLOB |0 |UNDEF |krb5_ldap_release_errcode_string
[15] | 0| 0|NOTY |GLOB |0 |UNDEF |krb5_ldap_set_mkey
[24] | 0| 0|NOTY |GLOB |0 |UNDEF |krb5_ldap_set_option
[36] | 0| 0|NOTY |GLOB |0 |UNDEF |krb5_ldap_supported_realms
[27] | 0| 0|NOTY |GLOB |0 |UNDEF |krb5_ldap_unlock
[1] | 0| 0|FILE |LOCL |0 |ABS |ldap_exp.c

Actions #10

Updated by Electric Monk 8 days ago

  • Status changed from New to Closed
  • % Done changed from 90 to 100

git commit 9e11eb24108a4735199cb20067ce66706c492016

commit  9e11eb24108a4735199cb20067ce66706c492016
Author: Klaus Ziegler <klausz@haus-gisela.de>
Date:   2021-10-15T17:21:29.000Z

    14135 SPARC build errors remove SPARC_BLD link option from lib/krb5/plugins/kdb/ldap/Makefile.com
    Reviewed by: Toomas Soome <tsoome@me.com>
    Reviewed by: Andy Fiddaman <andy@omnios.org>
    Approved by: Robert Mustacchi <rm@fingolfin.org>

Actions

Also available in: Atom PDF