hercules-390 / hyperion

Hercules 390
Other
248 stars 67 forks source link

Unable to build on UNIX after Softfloat changes #171

Closed jphartmann closed 7 years ago

jphartmann commented 7 years ago

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.

ivan-w commented 7 years ago

All,

I'm also wondering how this will fare against a "make dist" then unpacking the generated tar.gz package and building from the resulting source package.

I have no issue that the SoftFloat-3a package is a requisite... But if it is, then it should be either independent (and the location independent of where hercules source/build/install is) or the build process of the package from source should be integrated with the hercules build process.

I'm just none too happy of having to include library binary files in the source structure of hercules in order to build hercules (or is there a ./configure --with-softfloat= ?)

Also - either SoftFloat-3a is part of hercules (and the source should be simply in the source tree) - or - it is not part of hercules, and then it should be optional, and be completely independent (notwithstanding any licensing issues).

Stephen, I am in no way implying there is anything wrong at this point... But, IMHO, the build process may need to be refined

--Ivan

On 12/20/2016 2:07 PM, John P. Hartmann wrote:

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) 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.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/hercules-390/hyperion/issues/171, or mute the thread https://github.com/notifications/unsubscribe-auth/ABjMW7uXs7xaTBVjl_ThX0p4my9tD8Ewks5rJ9MEgaJpZM4LR0PE.

erwinmars commented 7 years ago

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 commented 7 years ago

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 commented 7 years ago

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 commented 7 years ago

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 commented 7 years ago

Hey Steve,

I still think #170 and #171 are just 2 sides of the same story. But it all depends how you want to package/integrate your version of SoftFloat into hercules.

Personally - but it's only an opinion - would be to have SoftFloat-3x as an external library. Which would mean :

Think bzlib/zlib, etc....

On the other hand, if SoftFloat-3's only purpose is for hercules... Then the source should probably be directly included in hercules itself, and the build, packaging, etc... be streamlined with the main source... (how can a cmake build be made compatible with automagic ?) and there COULD be some licensing issues though (is Creative-Common compatible with the current hercules licensing terms ?)...

--Ivan

On 12/20/2016 11:58 PM, Stephen Orso wrote:

Hi folks:

There appear to be two distinct issues:

170 https://github.com/hercules-390/hyperion/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 https://github.com/hercules-390/hyperion/issues/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 https://github.com/hercules-390/hyperion/issues/171 be used for make target issues and #170 https://github.com/hercules-390/hyperion/issues/170 for build issues relating to Hercules being unable to find s3fh.

I should be able to commit a correction for #171 https://github.com/hercules-390/hyperion/issues/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

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/hercules-390/hyperion/issues/171#issuecomment-268384042, or mute the thread https://github.com/notifications/unsubscribe-auth/ABjMWwSZBRPse6dvOaOX6b3fRMp7Tos8ks5rKF2XgaJpZM4LR0PE.

srorso commented 7 years ago

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 commented 7 years ago

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 commented 7 years ago

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 commented 7 years ago

Steve,

On a side note :

cckd & het bzip2 support will be enabled by default if ./configure can find the relevant libbz2 libraries and header files.. You don't really need to --enable-cckd-bzip2 and --enable-het-bzip2.... However if you specifically want to disable those supports (and have the bzip2 dev packages installed), then you should use --disable-cckd-bzip2 and --disable-het-bzip2 !

I will also try myself again to build hercules with the given instructions, and will let you know how I fare. I have to see how I can integrate this in my hercules build shell scripts (I always rebuild hercules from scratch... especially useful when doing a git bisect when troubleshooting and doing regression tests).

--Ivan

On 12/21/2016 2:14 PM, Stephen Orso wrote:

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.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/hercules-390/hyperion/issues/171#issuecomment-268520241, or mute the thread https://github.com/notifications/unsubscribe-auth/ABjMW0uqgYQ684D1FvTRFHZ6SNJhHzVVks5rKSZQgaJpZM4LR0PE.

jphartmann commented 7 years ago

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 commented 7 years ago

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

srorso commented 7 years ago

Jim:

Excellent! And thanks for the feedback.

Can you share what host system you are building on?

Best regards, Steve Orso

+1 610 217 7050

On Dec 21, 2016, at 4:11 PM, Jim notifications@github.com wrote:

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

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub, or mute the thread.

lnlyssg commented 7 years ago

Ah yes of course, Ubuntu 16.04.1

srorso commented 7 years ago

Expect --enable-s3fh-altdir= in the next commit.

There are enough similar examples in configure.ac that I should be able to hack it.

Best regards, Steve Orso

+1 610 217 7050

On Dec 21, 2016, at 3:57 PM, John P. Hartmann notifications@github.com wrote:

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.

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub, or mute the thread.

Peter-J-Jansen commented 7 years ago

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 commented 7 years ago

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

srorso commented 7 years ago

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.