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

1st gfortran stanza target for raspberry pi (add aarch64 and armv7l) #1301

Merged
merged 6 commits into from
Dec 30, 2020

Conversation

davegill
Copy link
Contributor

@davegill davegill commented Oct 13, 2020

TYPE: new feature

KEYWORDS: raspberry pi

SOURCE: Daniel Zurawski and internal

DESCRIPTION OF CHANGES:
Additional strings, armv7l and aarch64, have been added to the first gfortran configuration stanza
so that these may be keywords for search from Raspberry Pi's uname -a output. No new
stanza was added for the gfortran target, so no re-numbering is required for existing scripts that
are reliant on such things as "32 = Gfortran for Linux with a serial build".

Associated with this PR, #1300 (Inconsistent arg types (integer kind) across subroutine call) is
also required to get the Raspberry Pi to build successfully.

LIST OF MODIFIED FILES:
modified: arch/configure.defaults

TESTS CONDUCTED:

  1. Previously, a Raspberry Pi build returned this:
*********************************************************
***              ERROR ERROR ERROR ERROR              ***
***                                                   ***
*** Configuration not found in configure.defaults     *** 
*********************************************************
  1. After this PR, the configure command is able to find a target (raspian buster):
-----------------------------------------------------------------------
Please select from among the following Linux armv7l options:
    
  1. (serial)   2. (smpar)   3. (dmpar)   4. (dm+sm)   GNU (gfortran/gcc)
  1. After this PR, the configure command is able to find a target (ubuntu mate):
------------------------------------------------------------------------
Please select from among the following Linux aarch64 options:

  1. (serial)   2. (smpar)   3. (dmpar)   4. (dm+sm)   GNU (gfortran/gcc)
  1. Jenkins testing is all pass.

RELEASE NOTES: Modifications to the WRF code now permit the model to be built on a Raspberry Pi with the GNU/8 compiler.

TYPE: new feature

KEYWORDS: raspberry pi

SOURCE: internal

DESCRIPTION OF CHANGES:
An additional string, `armv7l`, has been added to the first gfortran stanza
so that this may be a keyword for search fro Raspberry Pi's `uname -a` output.

LIST OF MODIFIED FILES:
modified:   arch/configure.defaults

TESTS CONDUCTED:
1. Previously, a Raspberry Pi build returned this:
```
*********************************************************
***              ERROR ERROR ERROR ERROR              ***
***                                                   ***
*** Configuration not found in configure.defaults     ***
*********************************************************
```
2. After this PR, the configure command is able to fine a target.
```
-----------------------------------------------------------------------
Please select from among the following Linux armv7l options:

  1. (serial)   2. (smpar)   3. (dmpar)   4. (dm+sm)   GNU (gfortran/gcc)
```
3. Expect jenkins to sail through without a hitch.

RELEASE NOTES: Modifications to the WRF code now permit the model to be built on a Raspberry Pi with the GNU/8 compiler.
@davegill davegill requested review from a team as code owners October 13, 2020 21:50
@davegill davegill changed the base branch from master to release-v4.2.2 October 13, 2020 21:51
@davegill davegill changed the title Raspberry pi configure stanza with gfortran Add raspberry pi configure stanza for gfortran, search armv7l string Oct 18, 2020
@davegill davegill changed the title Add raspberry pi configure stanza for gfortran, search armv7l string Include raspberry pi for gfortran config stanza (add "armv7l" string) Oct 23, 2020
@djzurawski
Copy link

I am running 64bit Ubuntu Mate for Raspberry Pi on a Raspberry Pi 4 and get aarch64 from uname -a. Maybe add that arch too

@davegill
Copy link
Contributor Author

@djzurawski
This is EXACTLY the sort of benefit that we hoped would come from this open development.

@davegill davegill changed the title Include raspberry pi for gfortran config stanza (add "armv7l" string) raspberry pi for gfortran config stanza (add aarch64 and armv7l strings) Oct 27, 2020
@davegill
Copy link
Contributor Author

@djzurawski
Dan,
Would you please verify that this successfully brings up a set of possible build options for you.

@djzurawski
Copy link

djzurawski commented Oct 27, 2020

Yep got build options

pi@raspberry4:~/wrftest/WRF$ uname -a
Linux raspberry4 5.4.0-1022-raspi #25-Ubuntu SMP PREEMPT Thu Oct 15 13:31:49 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux
pi@raspberry4:~/wrftest/WRF$ ./configure
checking for perl5... no
checking for perl... found /usr/bin/perl (perl)
Will use NETCDF in dir: /home/pi/WRF/Library
Will use HDF5 in dir: /home/pi/WRF/Library
PHDF5 not set in environment. Will configure WRF for use without.
Will use 'time' to report timing information


If you REALLY want Grib2 output from WRF, modify the arch/Config.pl script.
Right now you are not getting the Jasper lib, from the environment, compiled into WRF.

------------------------------------------------------------------------
Please select from among the following Linux aarch64 options:

  1. (serial)   2. (smpar)   3. (dmpar)   4. (dm+sm)   GNU (gfortran/gcc)

Enter selection [1-4] : 

@davegill davegill changed the title raspberry pi for gfortran config stanza (add aarch64 and armv7l strings) 1st gfortran stanza includes raspberry pi (add aarch64 and armv7l strings) Oct 27, 2020
@davegill
Copy link
Contributor Author

@djzurawski
Dan,
Please send me your name and affiliation, so that I may add it to the PR commit message.

@davegill davegill changed the title 1st gfortran stanza includes raspberry pi (add aarch64 and armv7l strings) 1st gfortran stanza includes raspberry pi (add aarch64 and armv7l) Oct 27, 2020
@davegill davegill changed the title 1st gfortran stanza includes raspberry pi (add aarch64 and armv7l) 1st gfortran stanza target for raspberry pi (add aarch64 and armv7l) Oct 27, 2020
@djzurawski
Copy link

@djzurawski
Dan,
Please send me your name and affiliation, so that I may add it to the PR commit message.

Daniel Zurawski. Unaffiliated?

@davegill davegill merged commit d1fce1f into wrf-model:release-v4.2.2 Dec 30, 2020
vlakshmanan-scala pushed a commit to scala-computing/WRF that referenced this pull request Apr 4, 2024
…rf-model#1301)

TYPE: new feature
    
KEYWORDS: raspberry pi
    
SOURCE: Daniel Zurawski and internal
  
DESCRIPTION OF CHANGES:
Additional strings, `armv7l` and `aarch64`, have been added to the first gfortran configuration stanza
so that these may be keywords for search from Raspberry Pi's `uname -a` output. No new
stanza was added for the gfortran target, so no re-numbering is required  for existing scripts that 
are reliant on such things as "32 = Gfortran for Linux with a serial build".

Associated with this PR, wrf-model#1300 (Inconsistent arg types (integer kind) across subroutine call) is
also required to get the Raspberry Pi to build successfully.
 
LIST OF MODIFIED FILES:
modified:   arch/configure.defaults
    
TESTS CONDUCTED:
1. Previously, a Raspberry Pi build returned this:
``` 
*********************************************************
***              ERROR ERROR ERROR ERROR              ***
***                                                   ***
*** Configuration not found in configure.defaults     *** 
*********************************************************
``` 
2. After this PR, the configure command is able to find a target (raspian buster):
``` 
-----------------------------------------------------------------------
Please select from among the following Linux armv7l options:
    
  1. (serial)   2. (smpar)   3. (dmpar)   4. (dm+sm)   GNU (gfortran/gcc)
``` 
3. After this PR, the configure command is able to find a target (ubuntu mate):
```
------------------------------------------------------------------------
Please select from among the following Linux aarch64 options:

  1. (serial)   2. (smpar)   3. (dmpar)   4. (dm+sm)   GNU (gfortran/gcc)
```
4. Jenkins testing is all pass.
    
RELEASE NOTES: Modifications to the WRF code now permit the model to be built on a Raspberry Pi with the GNU/8 compiler.
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 this pull request may close these issues.

3 participants