Quantcast
Channel: Pale Moon forum
Viewing all articles
Browse latest Browse all 2346

Browser Development • Re: PPC64le linux build failure: error: undefined reference to 'chacha20vsx'

$
0
0
@Gaming4J -- Doing the change you described in `platform/security/nss/coreconf/config.gypi` didn't seem to disable palemoon building with VSX, and neither did `ac_add_options --disable-optimize` in `.mozconfig`. The only thing that disabled these VSX optimizations was adding `-DNSS_DISABLE_CRYPTO_VSX` to my CFLAGS and CXXFLAGS.

CODE:

 0:05.90 /var/tmp/tmp/Pale-Moon/platform/security/nss/lib/freebl/chacha20poly1305.c:225: error: undefined reference to 'chacha20vsx' 0:05.90 /var/tmp/tmp/Pale-Moon/platform/security/nss/lib/freebl/chacha20poly1305.c:305: error: undefined reference to 'Chacha20Poly1305_vsx_aead_encrypt' 0:05.90 /var/tmp/tmp/Pale-Moon/platform/security/nss/lib/freebl/chacha20poly1305.c:378: error: undefined reference to 'Chacha20Poly1305_vsx_aead_decrypt' 0:05.90 /var/tmp/tmp/Pale-Moon/platform/security/nss/lib/freebl/chacha20poly1305.c:454: error: undefined reference to 'Chacha20Poly1305_vsx_aead_encrypt' 0:05.90 /var/tmp/tmp/Pale-Moon/platform/security/nss/lib/freebl/chacha20poly1305.c:527: error: undefined reference to 'Chacha20Poly1305_vsx_aead_decrypt'
Also.... considering your desire to *not* fork nss, why are you guys vendoring it by default instead of using the system installed version? Because I have nss installed on my system and it functions perfectly fine with firefox..

Also, another note, I needed to add `-Wno-implicit-function-declaration` to my *FLAGS.

Also, I encountered your altivec optimizations also causing build failures.

CODE:

 1:28.57 /var/tmp/tmp/Pale-Moon/platform/gfx/qcms/transform-altivec.c:32:22: error: expected ',' or ';' before 'float' 1:28.57    32 | always_inline vector float load_aligned_float(float *dataPtr) 1:28.57       |                      ^~~~~ 1:28.57 /var/tmp/tmp/Pale-Moon/platform/gfx/qcms/transform-altivec.c: In function 'qcms_transform_data_rgb_out_lut_altivec': 1:28.57 /var/tmp/tmp/Pale-Moon/platform/gfx/qcms/transform-altivec.c:87:17: error: incompatible types when assigning to type '__vector float' {aka '__vector(4) float'} from type 'int' 1:28.57    87 |         vec_r = load_aligned_float((float*)&igtbl_r[src[0]]); 1:28.57       |                 ^~~~~~~~~~~~~~~~~~ 1:28.57 /var/tmp/tmp/Pale-Moon/platform/gfx/qcms/transform-altivec.c:88:17: error: incompatible types when assigning to type '__vector float' {aka '__vector(4) float'} from type 'int' 1:28.57    88 |         vec_g = load_aligned_float((float*)&igtbl_r[src[1]]); 1:28.57       |                 ^~~~~~~~~~~~~~~~~~ 1:28.57 /var/tmp/tmp/Pale-Moon/platform/gfx/qcms/transform-altivec.c:89:17: error: incompatible types when assigning to type '__vector float' {aka '__vector(4) float'} from type 'int' 1:28.57    89 |         vec_b = load_aligned_float((float*)&igtbl_r[src[2]]); 1:28.57       |                 ^~~~~~~~~~~~~~~~~~ 1:28.58 /var/tmp/tmp/Pale-Moon/platform/gfx/qcms/transform-altivec.c:116:25: error: incompatible types when assigning to type '__vector float' {aka '__vector(4) float'} from type 'int' 1:28.58   116 |                 vec_r = load_aligned_float((float*)&igtbl_r[src[0]]); 1:28.58       |                         ^~~~~~~~~~~~~~~~~~ 1:28.58 /var/tmp/tmp/Pale-Moon/platform/gfx/qcms/transform-altivec.c:117:25: error: incompatible types when assigning to type '__vector float' {aka '__vector(4) float'} from type 'int' 1:28.58   117 |                 vec_g = load_aligned_float((float*)&igtbl_r[src[1]]); 1:28.58       |                         ^~~~~~~~~~~~~~~~~~ 1:28.58 /var/tmp/tmp/Pale-Moon/platform/gfx/qcms/transform-altivec.c:118:25: error: incompatible types when assigning to type '__vector float' {aka '__vector(4) float'} from type 'int' 1:28.58   118 |                 vec_b = load_aligned_float((float*)&igtbl_r[src[2]]); 1:28.58       |                         ^~~~~~~~~~~~~~~~~~ 1:28.58 Warning: -Wunused-variable in /var/tmp/tmp/Pale-Moon/platform/gfx/qcms/transform-altivec.c: unused variable 'igtbl_b' 1:28.58 /var/tmp/tmp/Pale-Moon/platform/gfx/qcms/transform-altivec.c:59:22: warning: unused variable 'igtbl_b' [-Wunused-variable] 1:28.58    59 |         const float *igtbl_b = transform->input_gamma_table_b; 1:28.58       |                      ^~~~~~~ 1:28.58 Warning: -Wunused-variable in /var/tmp/tmp/Pale-Moon/platform/gfx/qcms/transform-altivec.c: unused variable 'igtbl_g' 1:28.58 /var/tmp/tmp/Pale-Moon/platform/gfx/qcms/transform-altivec.c:58:22: warning: unused variable 'igtbl_g' [-Wunused-variable] 1:28.58    58 |         const float *igtbl_g = transform->input_gamma_table_g; 1:28.58       |                      ^~~~~~~ 1:28.59 /var/tmp/tmp/Pale-Moon/platform/gfx/qcms/transform-altivec.c: In function 'qcms_transform_data_rgba_out_lut_altivec': 1:28.59 /var/tmp/tmp/Pale-Moon/platform/gfx/qcms/transform-altivec.c:199:17: error: incompatible types when assigning to type '__vector float' {aka '__vector(4) float'} from type 'int' 1:28.59   199 |         vec_r = load_aligned_float((float*)&igtbl_r[src[0]]); 1:28.59       |                 ^~~~~~~~~~~~~~~~~~ 1:28.59 /var/tmp/tmp/Pale-Moon/platform/gfx/qcms/transform-altivec.c:200:17: error: incompatible types when assigning to type '__vector float' {aka '__vector(4) float'} from type 'int' 1:28.59   200 |         vec_g = load_aligned_float((float*)&igtbl_r[src[1]]); 1:28.59       |                 ^~~~~~~~~~~~~~~~~~ 1:28.59 /var/tmp/tmp/Pale-Moon/platform/gfx/qcms/transform-altivec.c:201:17: error: incompatible types when assigning to type '__vector float' {aka '__vector(4) float'} from type 'int' 1:28.59   201 |         vec_b = load_aligned_float((float*)&igtbl_r[src[2]]); 1:28.59       |                 ^~~~~~~~~~~~~~~~~~ 1:28.60 /var/tmp/tmp/Pale-Moon/platform/gfx/qcms/transform-altivec.c:233:25: error: incompatible types when assigning to type '__vector float' {aka '__vector(4) float'} from type 'int' 1:28.60   233 |                 vec_r = load_aligned_float((float*)&igtbl_r[src[0]]); 1:28.60       |                         ^~~~~~~~~~~~~~~~~~ 1:28.60 /var/tmp/tmp/Pale-Moon/platform/gfx/qcms/transform-altivec.c:234:25: error: incompatible types when assigning to type '__vector float' {aka '__vector(4) float'} from type 'int' 1:28.60   234 |                 vec_g = load_aligned_float((float*)&igtbl_r[src[1]]); 1:28.60       |                         ^~~~~~~~~~~~~~~~~~ 
Because, from all my searching, I could not find any flags or vars to actually disable this altivec code, I had to modify the code in a few places to bypass it. `platform/gfx/qcms/transform.c`, commented out the section starting at 1302, and also in `platform/gfx/qcms/moz.build` at line 37.

After these vsx/altivec optimizations have been disabled, palemoon builds successfully. (although it does segfault when running, so that'll be a fun time. same segfault i got in 32.0.1, will debug).

It would be extremely swell if these PPC vector optimizations could have their build issues fixed, but if not, since as they are right now they're non-functional, this non working code would be better disabled/removed.

Viewing all articles
Browse latest Browse all 2346

Trending Articles