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

Unable to build on UNIX after Softfloat changes #171

Closed
jphartmann opened this issue Dec 20, 2016 · 18 comments
Closed

Unable to build on UNIX after Softfloat changes #171

jphartmann opened this issue Dec 20, 2016 · 18 comments
Assignees

Comments

@jphartmann
Copy link
Contributor

jphartmann commented Dec 20, 2016

Using my traditional out-of-source directory, and having bootstrapped cmake, built and installed Soft float, I still get

make[2]: Entering directory `/usr/data/hercules/hypobj'
  CCLD   libhercs.la
/usr/bin/ld: cannot find -lSoftFloat

Sure, I did not build where the schoolmistress said and I am having my knuckles treated with the ruler, but I think the configure option for softfloat (if there is one) is too well hidden.

I tried to build in hercules/$(uname -m)/hyperion but my disk went bellyup, so I'm sort of dead in the water until the new bits arrive tomorrow.

Anyhow, once you have CMAKE and Softfloat built and installed, try configuring in the prescribed place and see what happens.

@srorso srorso self-assigned this Dec 20, 2016
@ivan-w
Copy link
Contributor

ivan-w commented Dec 20, 2016 via email

@erwinmars
Copy link

Hi guys,

the same for me with windows build. I get

SoftFloat 3a install tree set to "U:\z\hercules-390\sfloat" from SFLIB_DIR environment variable
ZLIB support will be included from "D:\Dev\Hercules\ZLIB1"
"**  " D:\Dev\Hercules\BZIP2
BZIP2 support will be included from "D:\Dev\Hercules\BZIP2"
PCRE support will be included from "D:\Dev\Hercules\PCRE"
REGINA REXX support will be included from "C:\Program Files\rexx.org\Regina"
msvc.makefile.includes\EXTPKG_FLAGS.msvc(27) : fatal error U1050: SFLIB_DIR   "U:\z\hercules390\sfloat\lib\SoftFloat.lib"
does not exist. Check "U:\z\hercules-390\sfloat" contents.
Stop.
ERRORLEVEL = 4

Because of the new variable SFLIB i created the path with a include subdirectory and a lib subdirectory. I copied than the SoftFloat.h and the softfloat_types.h in the include path, but because there is lib it stops.

Before the last clone, everything works fine.

Erwin

@erwinmars
Copy link

I now have read the new build instructions. :-)

SoftFload needs to build outside of the hercules build. Its described in the BUILDING.txt. I hope, than it will work.

Erwin

@lnlyssg
Copy link

lnlyssg commented Dec 20, 2016

I am also having issues, I thought I had followed the instructions to the letter too :(

I have followed the SoftFloat building instructions and run cmake -P cmake_install.cmake which gives:

-- Install configuration: "Release"
-- Up-to-date: /home/jim/hercules/x86_64/s3fh/lib/pkgconfig/SoftFloat.pc
-- Up-to-date: /home/jim/hercules/x86_64/s3fh/lib/libSoftFloat.a
-- Up-to-date: /home/jim/hercules/x86_64/s3fh/include/softfloat.h
-- Up-to-date: /home/jim/hercules/x86_64/s3fh/include/softfloat_types.h
-- Up-to-date: /home/jim/hercules/x86_64/s3fh/./COPYING.txt
-- Up-to-date: /home/jim/hercules/x86_64/s3fh/./README.txt
-- Up-to-date: /home/jim/hercules/x86_64/s3fh/./README.html

I then moved on to the Hercules build instructions using the correct naming standard as per the building guide. But when I get to the make, it fails with:

make[2]: *** No rule to make target 'softfloat.h', needed by 'all-am'. Stop.
make[2]: Leaving directory '/home/jim/hercules/x86_64/hyperion'
Makefile:2260: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/jim/hercules/x86_64/hyperion'
Makefile:1671: recipe for target 'all' failed
make: *** [all] Error 2

I may well be missing something obvious but can't quite figure out what that may be!

@srorso
Copy link
Contributor

srorso commented Dec 20, 2016

Hi folks:

There appear to be two distinct issues:

#170, which I would like to use as the focus for all matters relating to the open source system build process not being clear about the requirement to build SoftFloat-3a For Hercules, and

#171, which deals with a) unable to find SoftFloat 3a For Hercules, and b) sundry make targets not being found during the Hercules build.

I believe these two issues have different root causes, and in any event the disjoint nature of the symptoms suggests separate issues makes sense. Therefore, I ask that this issues #171 be used for make target issues and #170 for build issues relating to Hercules being unable to find s3fh.

I should be able to commit a correction for #171 (make issues other than missing SoftFloat-3a) sometime tomorrow...the delay due to my desire to run a regression test cycle (Debian 8.6, Leap, Win-10 bash).

And to Ivan: I fully expect further refinement based on the field experience we are gaining with this; your critique aids that process, and I thank you for it. Please keep watching and providing feedback.

Best Regards,
Steve Orso

@ivan-w
Copy link
Contributor

ivan-w commented Dec 21, 2016 via email

@srorso
Copy link
Contributor

srorso commented Dec 21, 2016

To all:

After three commits, I have addressed, I think, the issue that created the "No rule to make target 'softfloat.h'" messages reported by several.

The issue appears to have been caused by Makefile.am naming softfloat.h as a dependency, while SoftFloat.h was the name of the file in the repository. Missing dependency, look for a rule to make it.

I do find it interesting that my two Debian 8.6 systems (KDE), my Leap 42.2 system (also KDE), and Windows 10 bash (based on Ubuntu 14.04, line mode only), all did not care that SoftFloat.h should not be the same as softfloat.h. All systems built Hercules without error.

If you would re-clone, try again, and let me know what you experience, I would be most grateful.

To Ivan:

You continue to raise good points, but I would like to take them up in the developer's forum. You are wise to introduce licensing as a component of the discussion of what is part of Hercules (meaning in the repository, built with, and most importantly distributed with, source or binary).

@Peter-J-Jansen
Copy link
Contributor

Steve after removing and re-cloning hyperion in my Ubunto 16.04.1 system ./configure now comes up with this message, which I followed up on as per the details below. Anything I could do to help here ?

Cheers,

Peter

hercules@ubuntu:~ /hyperion$ ./configure
[...]
checking for off_t... yes
checking for _LARGEFILE_SOURCE value needed for large files... no
checking whether getopt wrapper kludge is necessary... no
configure: ---------------------------------------------------------------------------
configure:
ERROR: Required header 'softfloat_types.h' not found. Check for ../s3fh directory
configure:
configure: Take note: SoftFloat-3a For Hercules must now be built separately.
configure: See https://github.com/hercules-390/SoftFloat-3a/blob/master/BUILDING.txt
configure: for additional information.
configure:
configure: ---------------------------------------------------------------------------
configure: error: Please correct the above error(s) and try again
hercules@ubuntu:~ /hyperion$

hercules@ubuntu:~ /hyperion$ ll ../s3fh
ls: cannot access '../s3fh': No such file or directory
hercules@ubuntu:~ /hyperion$ ll ../amd64/s3fh
total 28
drwxrwxr-x 4 hercules hercules 4096 Dec 19 15:32 ./
drwxrwxr-x 6 hercules hercules 4096 Dec 19 15:19 ../
-rw-r--r-- 1 hercules hercules 1720 Dec 19 15:11 COPYING.txt
drwxrwxr-x 2 hercules hercules 4096 Dec 19 15:32 include/
drwxrwxr-x 3 hercules hercules 4096 Dec 19 15:33 lib/
-rw-r--r-- 1 hercules hercules 1253 Dec 19 15:11 README.html
-rw-r--r-- 1 hercules hercules 797 Dec 19 15:11 README.txt
hercules@ubuntu:~ /hyperion$ ll ../amd64/s3fh/include
total 36
drwxrwxr-x 2 hercules hercules 4096 Dec 19 15:32 ./
drwxrwxr-x 4 hercules hercules 4096 Dec 19 15:32 ../
-rw-r--r-- 1 hercules hercules 21342 Dec 19 15:11 softfloat.h
-rw-r--r-- 1 hercules hercules 4045 Dec 19 15:11 softfloat_types.h
hercules@ubuntu:~ /hyperion$

@srorso
Copy link
Contributor

srorso commented Dec 21, 2016

Hi Peter:

It appears that you are building in source, but I cannot be certain. Are you using the directory structure below:

~/hyperion
~/amd64
~/amd64/sf3h

and building in ~/hyperion?

What happens whn you create a directory ~/amd64/hyperion, cd to that directory, and run configure from there:

../../hyperion/configure --enable-cckd-bzip2 --enable-het-bzip2 --enable-regina-rexx

I included the configure options I normally use to build in case you wish to copy/paste....but no options are required to build. ../../hyperion/configure should work just fine. You just will not have REXX support nor bzip2 compression for disk and tape.

~/amd64/hyperion would be the build directory, and ~/hyperion would be the source directory.

@ivan-w
Copy link
Contributor

ivan-w commented Dec 21, 2016 via email

@jphartmann
Copy link
Contributor Author

It seems to be a hard requirement of Softfloat that the hyperion build directory is two levels below the source directory. I don't have any issues with this, but configure knows the relative path from build to source, so it could compensate.

On the bright side Ubuntu 16 has a sufficiently uplevel cmake preinstalled.

I'll keep this open for Ivan's comments.

@lnlyssg
Copy link

lnlyssg commented Dec 21, 2016

Just to add some confirmation - my make is now working following the commits earlier today.

@srorso
Copy link
Contributor

srorso commented Dec 21, 2016 via email

@lnlyssg
Copy link

lnlyssg commented Dec 21, 2016

Ah yes of course, Ubuntu 16.04.1

@srorso
Copy link
Contributor

srorso commented Dec 21, 2016 via email

@Peter-J-Jansen
Copy link
Contributor

Steve, thanks for this ! You were right, I was doing an in-source build for hyperion. I thought to have read that somewhere this was still needed, but I now believe this is ONLY true for building hyperion under Windows, right ? Changing to the out-of-source-build for hyperion under ubuntu 16.04.1 made it all work perfectly.

And John, also the "make clean" worked fine now, no problems anymore with the test directory.

Cheers,
Peter

@jphartmann
Copy link
Contributor Author

Steve, if you run out of examples, look for how make check is implemented.

@srorso
Copy link
Contributor

srorso commented Mar 14, 2017

Commit cf4ce49 added support for an option to specify an alternate location for SoftFloat 3a For Hercules. Commit ad77d1a renamed public header softfloat.h so that it would no longer create missing target messages.

The larger question of how/where to build SoftFloat 3a For Hercules remains, but I must get much smarter about CMake, autotools, and GNU standard package layouts.

@srorso srorso closed this as completed Mar 14, 2017
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

No branches or pull requests

6 participants