Skip to content

32bit build on Ubuntu 16.04 fails with assembler errors #2057

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

Closed
gdevenyi opened this issue Mar 12, 2019 · 4 comments
Closed

32bit build on Ubuntu 16.04 fails with assembler errors #2057

gdevenyi opened this issue Mar 12, 2019 · 4 comments

Comments

@gdevenyi
Copy link

Following up on #2056, after patching in so that 32bit is built, I get the following error:

[  2%] Building ASM object kernel/CMakeFiles/kernel_NANO.dir/CMakeFiles/dtrsm_kernel_LN_NANO.S.o
/home/nistmni/OpenBLAS/kernel/x86/trsm_kernel_LN_2x4_penryn.S: Assembler messages:
/home/nistmni/OpenBLAS/kernel/x86/trsm_kernel_LN_2x4_penryn.S:215: Error: invalid operands (*UND* and *ABS* sections) for `*'
/home/nistmni/OpenBLAS/kernel/x86/trsm_kernel_LN_2x4_penryn.S:564: Error: invalid operands (*UND* and *ABS* sections) for `*'
/home/nistmni/OpenBLAS/kernel/x86/trsm_kernel_LN_2x4_penryn.S:626: Error: invalid operands (*UND* and *ABS* sections) for `*'
/home/nistmni/OpenBLAS/kernel/x86/trsm_kernel_LN_2x4_penryn.S:1058: Error: invalid operands (*UND* and *ABS* sections) for `*'
/home/nistmni/OpenBLAS/kernel/x86/trsm_kernel_LN_2x4_penryn.S:1310: Error: invalid operands (*UND* and *ABS* sections) for `*'
/home/nistmni/OpenBLAS/kernel/x86/trsm_kernel_LN_2x4_penryn.S:1348: Error: invalid operands (*UND* and *ABS* sections) for `*'
/home/nistmni/OpenBLAS/kernel/x86/trsm_kernel_LN_2x4_penryn.S:1663: Error: invalid operands (*UND* and *ABS* sections) for `*'
/home/nistmni/OpenBLAS/kernel/x86/trsm_kernel_LN_2x4_penryn.S:1853: Error: invalid operands (*UND* and *ABS* sections) for `*'
/home/nistmni/OpenBLAS/kernel/x86/trsm_kernel_LN_2x4_penryn.S:1877: Error: invalid operands (*UND* and *ABS* sections) for `*'
kernel/CMakeFiles/kernel_NANO.dir/build.make:2213: recipe for target 'kernel/CMakeFiles/kernel_NANO.dir/CMakeFiles/dtrsm_kernel_LN_NANO.S.o' failed
make[2]: *** [kernel/CMakeFiles/kernel_NANO.dir/CMakeFiles/dtrsm_kernel_LN_NANO.S.o] Error 1
CMakeFiles/Makefile2:1040: recipe for target 'kernel/CMakeFiles/kernel_NANO.dir/all' failed

My compiler/assembler versions:

$ gcc --version
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE
$ as --version
GNU assembler (GNU Binutils for Ubuntu) 2.26.1
Copyright (C) 2015 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or later.
This program has absolutely no warranty.
This assembler was configured for a target of `i686-linux-gnu'.

Based on this comment #1841 (comment) I should have new enough gcc and assembler

@martin-frbg
Copy link
Collaborator

Not sure what happened there - the file in question has not received any functional changes in 10+ years. My guess is either your compiler installation is broken/incomplete, or you have some garbage in your copy of the (most likely on the lines 71,72 that declare PREFETCH and PREFETCHSIZE, as the error messages all point to lines that use these two definitions).

@gdevenyi
Copy link
Author

You are correct. I had previously started a bare make build inside the OpenBLAS dir and that seems to break the cmake-based build in weird and unknown ways. Starting clean works (after addressing #2056 )

@martin-frbg
Copy link
Collaborator

That is an interesting failure mode at least, perhaps worthy of a FAQ entry. (Though I have been told that the "proper" way to do cmake builds is to create a build directory first and run cmake from there rather than building from the toplevel source directory, I have not seen any interaction between the two types of build that way.) Possibly what did happen was simply that the interrupted make build had left incomplete temporary files that the cmake-based one happily picked up.

@gdevenyi
Copy link
Author

Right, I should note I was doing the cmake build the "proper" way with an out-of-tree build directory.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants