Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

32 bit ubuntu linux 10.04 0.3 build three (3) unit tests fail #6922

Closed
marcushh777 opened this issue May 22, 2014 · 10 comments
Closed

32 bit ubuntu linux 10.04 0.3 build three (3) unit tests fail #6922

marcushh777 opened this issue May 22, 2014 · 10 comments
Labels
kind:bug Indicates an unexpected problem or unintended behavior system:32-bit Affects only 32-bit systems test This change adds or pertains to unit tests
Milestone

Comments

@marcushh777
Copy link

Greetings, build from GitHub sources is successful, and Julia appears to run fine, but three of the unit tests fail (details will follow below) on 32 bit ubuntu 10.04 Lucid.
Processor: AMD Athlon II P360 Dual Core
Kernel: 2.6.32-41
Ubuntu Lucid 10.04
gcc --version 4.4.3 i486-linux-gnu ubuntu 4.4.3-4ubuntu5.1

The following notes are the Julia startup banner followed by each of the three unit test failures. The three tests which fail are:
make test-linalg2
make test-math < this test will pass if USE_SYSTEM_LIBM=1
make test-mod2pi

harmar@bishop:~/julia$ ./julia

Version 0.3.0-prerelease+3151 (2014-05-22 02:40 UTC)
Commit b6075df* (0 days old master)
i486-linux-gnu

julia> ==================================================================

harmar@bishop:~/julia$ make test-linalg2
    JULIA test/linalg2
     * linalg2
exception on 1: ERROR: assertion failed: |func(D) - func(DM)| <= 1.7166138e-5
  func(D) = 2.955925f0 + 3.1412146f0im
  func(DM) = 2.9559249877929688 + 1.9240000645187898im
  difference = 1.2172145446273284 > 1.7166138e-5
 in error at error.jl:22
 in test_approx_eq at test.jl:109
 in anonymous at no file:398
 in runtests at /home/harmar/julia/test/testdefs.jl:5
 in anonymous at multi.jl:652
 in run_work_thunk at multi.jl:613
 in remotecall_fetch at multi.jl:686
 in remotecall_fetch at multi.jl:701
 in anonymous at task.jl:1348
while loading linalg2.jl, in expression starting on line 371
ERROR: assertion failed: |func(D) - func(DM)| <= 1.7166138e-5
  func(D) = 2.955925f0 + 3.1412146f0im
  func(DM) = 2.9559249877929688 + 1.9240000645187898im
  difference = 1.2172145446273284 > 1.7166138e-5
 in error at error.jl:22
 in test_approx_eq at test.jl:109
 in anonymous at no file:398
 in runtests at /home/harmar/julia/test/testdefs.jl:5
 in anonymous at multi.jl:652
 in run_work_thunk at multi.jl:613
 in remotecall_fetch at multi.jl:686
 in remotecall_fetch at multi.jl:701
 in anonymous at task.jl:1348
while loading linalg2.jl, in expression starting on line 371
while loading /home/harmar/julia/test/runtests.jl, in expression starting on line 46

make[1]: *** [linalg2] Error 1
make: *** [test-linalg2] Error 2

julia> ==================================================================
harmar@bishop:~/julia$ make test-math
    JULIA test/math
     * math
exception on 1: ERROR: assertion failed: |sinpi(convert(T,x))::T - convert(T,sin(pi * x))| <= 9.536743e-7
  sinpi(convert(T,x))::T = -0.8090169
  convert(T,sin(pi * x)) = -1.0
  difference = 0.19098312 > 9.536743e-7
 in error at error.jl:22
 in test_approx_eq at test.jl:109
 in anonymous at no file:19
 in runtests at /home/harmar/julia/test/testdefs.jl:5
 in anonymous at multi.jl:652
 in run_work_thunk at multi.jl:613
 in remotecall_fetch at multi.jl:686
 in remotecall_fetch at multi.jl:701
 in anonymous at task.jl:1348
while loading math.jl, in expression starting on line 8
ERROR: assertion failed: |sinpi(convert(T,x))::T - convert(T,sin(pi * x))| <= 9.536743e-7
  sinpi(convert(T,x))::T = -0.8090169
  convert(T,sin(pi * x)) = -1.0
  difference = 0.19098312 > 9.536743e-7
 in error at error.jl:22
 in test_approx_eq at test.jl:109
 in anonymous at no file:19
 in runtests at /home/harmar/julia/test/testdefs.jl:5
 in anonymous at multi.jl:652
 in run_work_thunk at multi.jl:613
 in remotecall_fetch at multi.jl:686
 in remotecall_fetch at multi.jl:701
 in anonymous at task.jl:1348
while loading math.jl, in expression starting on line 8
while loading /home/harmar/julia/test/runtests.jl, in expression starting on line 46

make[1]: *** [math] Error 1
make: *** [test-math] Error 2

julia> ==================================================================
harmar@bishop:~/julia$ make test-mod2pi
    JULIA test/mod2pi
     * mod2pi
exception on 1: ERROR: assertion failed: |totalErrNew - 0.0| <= 2.220446049250313e-12
  totalErrNew = 1.5707963267948961
  0.0 = 0.0
  difference = 1.5707963267948961 > 2.220446049250313e-12
 in error at error.jl:22
 in test_approx_eq at test.jl:109
 in test_approx_eq at test.jl:119
 in testModPi at mod2pi.jl:182
 in runtests at /home/harmar/julia/test/testdefs.jl:5
 in anonymous at multi.jl:652
 in run_work_thunk at multi.jl:613
 in remotecall_fetch at multi.jl:686
 in remotecall_fetch at multi.jl:701
 in anonymous at task.jl:1348
while loading mod2pi.jl, in expression starting on line 184
ERROR: assertion failed: |totalErrNew - 0.0| <= 2.220446049250313e-12
  totalErrNew = 1.5707963267948961
  0.0 = 0.0
  difference = 1.5707963267948961 > 2.220446049250313e-12
 in error at error.jl:22
 in test_approx_eq at test.jl:109
 in test_approx_eq at test.jl:119
 in testModPi at mod2pi.jl:182
 in runtests at /home/harmar/julia/test/testdefs.jl:5
 in anonymous at multi.jl:652
 in run_work_thunk at multi.jl:613
 in remotecall_fetch at multi.jl:686
 in remotecall_fetch at multi.jl:701
 in anonymous at task.jl:1348
while loading mod2pi.jl, in expression starting on line 184
while loading /home/harmar/julia/test/runtests.jl, in expression starting on line 46

make[1]: *** [mod2pi] Error 1
make: *** [test-mod2pi] Error 2

julia> ==================================================================

[pao: formatting]

@marcushh777 marcushh777 changed the title 32 bit ubuntu linux 10.04 pre release 0.3 build some tests fail (3) all 32 bit ubuntu linux 10.04 0.3 build three (3) unit tests fail May 22, 2014
@pao pao added the test label May 22, 2014
@JeffBezanson
Copy link
Sponsor Member

Likely related: JuliaMath/openlibm#57

@marcushh777
Copy link
Author

On the same machine hardware, from the git clone, I checked out the v0.2.1 followed by a make clean && make.

The build was successful; however the test-math unit test failed. I have appended the pertinent info at the bottom of this post. All other unit tests passed, however the math unit test failed.
If I include the USE_SYSTEM_LIBM=1 then all unit tests pass, except that there is a lib warning for almost every math library function "possible conflict in library symbol --- "

harmar@bishop:$ cd julia
harmar@bishop:
/julia$ ./julia
Warning: Possible conflict in library symbol round
_
_ _ ()_ | A fresh approach to technical computing
() | () () | Documentation: http://docs.julialang.org
_ _ | | __ _ | Type "help()" to list help topics
| | | | | | |/ ` | |
| | |
| | | | (
| | | Version 0.2.1 (2014-02-11 06:30 UTC)
/ |_'|||__'| |
|__/ | i486-linux-gnu

julia>

harmar@bishop:~/julia$ make test-math
JULIA test/math
* math
exception on 1: ERROR: assertion failed: |:(sinpi(x)) - :(sin((pi,x)))| <= 1.7763568394002505e-15
:(sinpi(x)) = -0.8090169943749471
:(sin(
(pi,x))) = -0.9999999882345147
difference = 0.19098299385956763 > 1.7763568394002505e-15
in error at error.jl:22
in test_approx_eq at test.jl:68
in anonymous at no file:14
in runtests at /home/harmar/julia/test/testdefs.jl:5
in anonymous at multi.jl:613
in run_work_thunk at multi.jl:575
in remotecall_fetch at multi.jl:647
in remotecall_fetch at multi.jl:662
in anonymous at multi.jl:1382
at math.jl:16
ERROR: assertion failed: |:(sinpi(x)) - :(sin((pi,x)))| <= 1.7763568394002505e-15
:(sinpi(x)) = -0.8090169943749471
:(sin(
(pi,x))) = -0.9999999882345147
difference = 0.19098299385956763 > 1.7763568394002505e-15
in error at error.jl:22
in test_approx_eq at test.jl:68
in anonymous at no file:14
in runtests at /home/harmar/julia/test/testdefs.jl:5
in anonymous at multi.jl:613
in run_work_thunk at multi.jl:575
in remotecall_fetch at multi.jl:647
in remotecall_fetch at multi.jl:662
in anonymous at multi.jl:1382
at math.jl:16
at /home/harmar/julia/test/runtests.jl:21

make[1]: *** [math] Error 1
make: *** [test-math] Error 2
harmar@bishop:/julia$ make test-math USE_SYSTEM_LIBM=1
PERL base/build_h.jl.phony
Warning: replacing module Base
primes.jl
Warning: Possible conflict in library symbol floor
Warning: Possible conflict in library symbol round
JULIA test/math
Warning: Possible conflict in library symbol round
* math
Warning: Possible conflict in library symbol frexp
Warning: Possible conflict in library symbol scalbn
Warning: Possible conflict in library symbol significand
Warning: Possible conflict in library symbol ilogb
Warning: Possible conflict in library symbol sin
Warning: Possible conflict in library symbol cos
Warning: Possible conflict in library symbol fmax
Warning: Possible conflict in library symbol erf
Warning: Possible conflict in library symbol erfc
Warning: Possible conflict in library symbol log
Warning: Possible conflict in library symbol sqrt
Warning: Possible conflict in library symbol pow
Warning: Possible conflict in library symbol fmaxf
Warning: Possible conflict in library symbol erff
Warning: Possible conflict in library symbol logf
Warning: Possible conflict in library symbol sqrtf
Warning: Possible conflict in library symbol erfcf
Warning: Possible conflict in library symbol hypot
Warning: Possible conflict in library symbol jn
Warning: Possible conflict in library symbol trunc
Warning: Possible conflict in library symbol yn
Warning: Possible conflict in library symbol lgamma_r
Warning: Possible conflict in library symbol exp
Warning: Possible conflict in library symbol lgamma
Warning: Possible conflict in library symbol tgamma
Warning: Possible conflict in library symbol log1p
Warning: Possible conflict in library symbol atan2
Warning: Possible conflict in library symbol cosh
Warning: Possible conflict in library symbol sinh
Warning: Possible conflict in library symbol floor
Warning: Possible conflict in library symbol log10
Warning: Possible conflict in library symbol fmin
Warning: Possible conflict in library symbol expm1
SUCCESS
harmar@bishop:
/julia$

Is there anything I can do to help?

thanks

@marcushh777
Copy link
Author

Sorry, I did not intend to close this issue.

:-)

@marcushh777 marcushh777 reopened this Jun 5, 2014
@ViralBShah
Copy link
Member

Can you do a clean build with make USE_SYSTEM_LIBM=1? It should not be giving those warnings.

@ViralBShah
Copy link
Member

This is a pretty serious issue. Perhaps on 32-bit, we should avoid using openlibm until we track and fix this. I do not have a 32-bit system to test on for now.

@ViralBShah ViralBShah added this to the 0.3 milestone Jun 5, 2014
@ViralBShah ViralBShah added the bug label Jun 5, 2014
@marcushh777
Copy link
Author

I am doing a clean rebuild now... takes a couple of hours on this system (will update )

@marcushh777
Copy link
Author

The clean build completed successfully, but there are still problems even specifying system LIBM.

I re installed the g++ and gfortran compiler, as well the current headers, and dev packages.
The repository was successfully cloned.
git checkout v0.2.1 successful
Changed Make.inc USE_SYSTEM_LIBM=1
Make was successfull; however, there were many many warnings
kernel/x86/xgemm3m_kernel_2x2.S:773 translating to fmulp %st, %st(1).
also many many format %ld expects long int but arg 2 got unsigned int
also many many --- may be used uninitialized in this function
also many many unused variables

Julia 32bit appears to work on this system using the system LIBM, but I am getting warnings of possible conflict with most (if not every) symbol in the library. Below is the printout of the banner, as well the testall results, as well some numeric stand-alone tests.

32 bit build seems to have some issues. Thanks for taking a look.

marcus

=================== begin ==================================================
harmar@bishop:$ cd julia
harmar@bishop:
/julia$ ./julia
Warning: Possible conflict in library symbol round
_
_ _ ()_ | A fresh approach to technical computing
() | () () | Documentation: http://docs.julialang.org
_ _ | | __ _ | Type "help()" to list help topics
| | | | | | |/ ` | |
| | |
| | | | (
| | | Version 0.2.1 (2014-02-11 06:30 UTC)
/ |_'|||__'| |
|__/ | i486-linux-gnu

julia>

harmar@bishop:/julia$ make testall
JULIA test/all
Warning: Possible conflict in library symbol round
Warning: Possible conflict in library symbol round
Warning: Possible conflict in library symbol round
From worker 3: * keywordargs
From worker 2: * core
Warning: Possible conflict in library symbol sin
From worker 3: * numbers
Warning: Possible conflict in library symbol fmin
From worker 2: * strings
Warning: Possible conflict in library symbol pow
Warning: Possible conflict in library symbol trunc
Warning: Possible conflict in library symbol scalbn
Warning: Possible conflict in library symbol scalbnf
Warning: Possible conflict in library symbol powf
Warning: Possible conflict in library symbol sqrt
Warning: Possible conflict in library symbol fmax
Warning: Possible conflict in library symbol ilogb
Warning: Possible conflict in library symbol floor
From worker 2: * unicode
Warning: Possible conflict in library symbol floor
Warning: Possible conflict in library symbol ceil
Warning: Possible conflict in library symbol truncf
Warning: Possible conflict in library symbol roundf
Warning: Possible conflict in library symbol floorf
Warning: Possible conflict in library symbol ceilf
From worker 2: * collections
Warning: Possible conflict in library symbol log10
Warning: Possible conflict in library symbol log2
From worker 2: * hashing
From worker 2: * remote
From worker 2: * iobuffer
From worker 2: * arrayops
Warning: Possible conflict in library symbol ceil
Warning: Possible conflict in library symbol sin
From worker 3: * linalg
Warning: Possible conflict in library symbol hypotf
Warning: Possible conflict in library symbol hypot
Warning: Possible conflict in library symbol sqrt
Warning: Possible conflict in library symbol pow
From worker 2: * blas
From worker 2: * fft
Warning: Possible conflict in library symbol hypot
Warning: Possible conflict in library symbol fmax
Warning: Possible conflict in library symbol fmaxf
Warning: Possible conflict in library symbol hypotf
Warning: Possible conflict in library symbol fmaxf
Warning: Possible conflict in library symbol logf
From worker 2: * dsp
Warning: Possible conflict in library symbol sqrtf
Warning: Possible conflict in library symbol log
From worker 2: * sparse
Warning: Possible conflict in library symbol ilogbf
Warning: Possible conflict in library symbol log
From worker 2: * bitarray
Warning: Possible conflict in library symbol log1pf
Warning: Possible conflict in library symbol atan2f
Warning: Possible conflict in library symbol log1p
Warning: Possible conflict in library symbol atan2
Warning: Possible conflict in library symbol expf
Warning: Possible conflict in library symbol exp
Warning: Possible conflict in library symbol cosf
Warning: Possible conflict in library symbol sinf
Warning: Possible conflict in library symbol cos
Warning: Possible conflict in library symbol trunc
Warning: Possible conflict in library symbol ilogb
Warning: Possible conflict in library symbol scalbn
Warning: Possible conflict in library symbol log1p
Warning: Possible conflict in library symbol atan2
Warning: Possible conflict in library symbol exp
Warning: Possible conflict in library symbol cos
Warning: Possible conflict in library symbol sqrtf
Warning: Possible conflict in library symbol powf
Warning: Possible conflict in library symbol atan2f
Warning: Possible conflict in library symbol expf
Warning: Possible conflict in library symbol logf
Warning: Possible conflict in library symbol cosf
Warning: Possible conflict in library symbol sinf
Warning: Possible conflict in library symbol coshf
Warning: Possible conflict in library symbol sinhf
Warning: Possible conflict in library symbol cosh
Warning: Possible conflict in library symbol sinh
Warning: Possible conflict in library symbol fminf
From worker 2: * random
From worker 3: * math
Warning: Possible conflict in library symbol frexp
Warning: Possible conflict in library symbol significand
Warning: Possible conflict in library symbol erf
Warning: Possible conflict in library symbol erfc
Warning: Possible conflict in library symbol erff
Warning: Possible conflict in library symbol erfcf
From worker 2: * functional
Warning: Possible conflict in library symbol jn
Warning: Possible conflict in library symbol yn
Warning: Possible conflict in library symbol lgamma_r
Warning: Possible conflict in library symbol lgamma
Warning: Possible conflict in library symbol tgamma
From worker 2: * bigint
Warning: Possible conflict in library symbol expm1
From worker 2: * sorting
From worker 2: * statistics
From worker 3: * spawn
Warning: Possible conflict in library symbol log10
Warning: Possible conflict in library symbol log2
Warning: Possible conflict in library symbol fmin
From worker 2: * parallel
From worker 3: [stdio passthrough ok]
From worker 3: * priorityqueue
Warning: Possible conflict in library symbol round
From worker 3: * arpack
Warning: Possible conflict in library symbol cbrt
From worker 3: * file
From worker 2: * suitesparse
From worker 2: * version
From worker 2: * resolve
From worker 3: * pollfd
From worker 3: * mpfr
Warning: Possible conflict in library symbol j0
Warning: Possible conflict in library symbol j1
Warning: Possible conflict in library symbol y0
Warning: Possible conflict in library symbol y1
Warning: Possible conflict in library symbol atanh
Warning: Possible conflict in library symbol tan
Warning: Possible conflict in library symbol acos
Warning: Possible conflict in library symbol asin
Warning: Possible conflict in library symbol atan
Warning: Possible conflict in library symbol tanh
Warning: Possible conflict in library symbol asinh
Warning: Possible conflict in library symbol acosh
From worker 3: * broadcast
From worker 2: * complex
Warning: Possible conflict in library symbol cosh
Warning: Possible conflict in library symbol sinh
Warning: Possible conflict in library symbol asinh
Warning: Possible conflict in library symbol tan
Warning: Possible conflict in library symbol atan
From worker 2: * socket
From worker 3: * floatapprox
From worker 2: * readdlm
From worker 3: * regex
From worker 3: * float16
From worker 3: * combinatorics
From worker 2: * sysinfo
From worker 2: * rounding
From worker 2: * ranges
SUCCESS
harmar@bishop:
/julia$

==================== numeric tests ===========================================

julia> sqrt(2.0)
Warning: Possible conflict in library symbol sqrt
1.4142135623730951

julia> sqrt(2.0)^2
Warning: Possible conflict in library symbol pow
2.0000000000000004

julia> sin(pi/4)
Warning: Possible conflict in library symbol sin
0.7071067811865475

julia> cos(pi/4)
Warning: Possible conflict in library symbol cos
0.7071067811865476

julia>

=============== end ========================================================

@marcushh777
Copy link
Author

On v0.2.1 I 32bit gcc 4.4.3 compiles against the system LIBM and things apparently work, but I constantly get the possible symbol conflict warnings. I'm still testing, but looks like the unit tests pass. So, I can experiment with Julia on my 32bit machine, even though messy.

I have not delved into the source code yet... I may get motivated.

OTOH, v0.3.0 32bit gcc 4.4.3 will compile against the system LIBM, but still will not pass the unit tests, although the warnings about possible symbol conflict are not there. Anyway, 0.3.0 does not work on my 32bit system.

  1. is there a way to suppress the symbol warnings? Are they critical?

  2. is this a compiler level problem, or is it in the Julia codes?

Thanks guys. :)

@vtjnash
Copy link
Sponsor Member

vtjnash commented Jun 11, 2014

the warnings are emitted in ccall in 0.2 to caution against behavior that might have changed in the "future". In 0.3, the behavior did not need to be changed, so the warning was removed

@marcushh777
Copy link
Author

Well, I have good news tonight all around. Julia building has prompted me to upgrade my remaining 32bit system to 64bit (I went with gnu/linux Mint Qiana 17 Cinnamon). The compilers are @ v 4.8.2/ things look good; all unit tests pass. There seems to be a tiny host-name glitch but not to worry for this record.

The really good news is that I acquired a relatively inexpensive sata drive for this same hardware that allows me to swap out the primary 64bit development system for a 32bit debian system, also with newer compilers. I am able to build 32bit 0.3.0 pre-release+3789 commit e2dc33f (on the same hardware) 2014.06.20 i486-linux-gnu using the 4.8.2 compilers. My initial tests pass, and all unit tests pass as well.

I suspect that the 4.4.3 compilers are too old to build Julia; although, over the past month, maybe you folks have been able to work some magic! ... if so, that you much!

For my 32bit test bed I chose Linux Mint Debian (basic development system with latest pae kernel). The compilation steps from Make looked like the 64bit logs, and although there were zillions of compiler warnings about variables set but not used, and "end of non-void function reached" warnings, the compile and test was relatively clean.

Say, ViralBShah, in your spare time (grin) you might want to build up a test bed drive for 32bit so that you can cross test on some of these goofy issues... just an idea. Any way, I don't mind doing some testing for you folks either if it helps.

So I'm intending to close this issue.

PS. Thanks for the product. If you guys can pull off the iPython | Julia match-up thing I really think Julia is a keeper for scientific | technical computing... nice work, keep it up !

marcus

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind:bug Indicates an unexpected problem or unintended behavior system:32-bit Affects only 32-bit systems test This change adds or pertains to unit tests
Projects
None yet
Development

No branches or pull requests

5 participants