--- /srv/reproducible-results/rbuild-debian/r-b-build.tHYKASy4/b1/openmpi_4.1.4-3_armhf.changes +++ /srv/reproducible-results/rbuild-debian/r-b-build.tHYKASy4/b2/openmpi_4.1.4-3_armhf.changes ├── Files │ @@ -1,8 +1,8 @@ │ │ 89ebdaab65a8e7de5445beff67d09518 919932 libdevel optional libopenmpi-dev_4.1.4-3_armhf.deb │ 9f3418de6a187cdd313f8d68656f5d6d 9232988 debug optional libopenmpi3-dbgsym_4.1.4-3_armhf.deb │ 77d8cb5a727ff7e9863eb99626586a05 1849204 libs optional libopenmpi3_4.1.4-3_armhf.deb │ ab6401ab260dc661a116e30f90787f73 94260 debug optional openmpi-bin-dbgsym_4.1.4-3_armhf.deb │ - a1f9eb4e827288cd78d0dbddb0bdac0d 193216 net optional openmpi-bin_4.1.4-3_armhf.deb │ + 768b2afd67a9b0866889fe5587f2a7e1 193296 net optional openmpi-bin_4.1.4-3_armhf.deb │ 24e663437812ed5328d6d2776dbc42ef 164588 net optional openmpi-common_4.1.4-3_all.deb │ 76cc23a26010d3ad2d6839697b83b56a 816160 doc optional openmpi-doc_4.1.4-3_all.deb ├── openmpi-bin_4.1.4-3_armhf.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2022-10-12 11:52:34.000000 debian-binary │ │ --rw-r--r-- 0 0 0 2280 2022-10-12 11:52:34.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 190744 2022-10-12 11:52:34.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 2320 2022-10-12 11:52:34.000000 control.tar.xz │ │ +-rw-r--r-- 0 0 0 190784 2022-10-12 11:52:34.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── file list │ │ │ │ @@ -1,6 +1,6 @@ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-12 11:52:34.000000 ./ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 110 2022-10-12 11:52:34.000000 ./conffiles │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1512 2022-10-12 11:52:34.000000 ./control │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2016 2022-10-12 11:52:34.000000 ./md5sums │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2067 2022-10-12 11:52:34.000000 ./md5sums │ │ │ │ -rwxr-xr-x 0 root (0) root (0) 1487 2022-10-12 11:52:34.000000 ./postinst │ │ │ │ -rwxr-xr-x 0 root (0) root (0) 205 2022-10-12 11:52:34.000000 ./prerm │ │ │ ├── ./control │ │ │ │ @@ -1,13 +1,13 @@ │ │ │ │ Package: openmpi-bin │ │ │ │ Source: openmpi │ │ │ │ Version: 4.1.4-3 │ │ │ │ Architecture: armhf │ │ │ │ Maintainer: Alastair McKinstry │ │ │ │ -Installed-Size: 346 │ │ │ │ +Installed-Size: 350 │ │ │ │ Depends: libc6 (>= 2.34), libevent-core-2.1-7 (>= 2.1.8-stable), libopenmpi3 (>= 4.1.4), openmpi-common (>= 4.1.4-3), openssh-client | ssh-client │ │ │ │ Suggests: gfortran | fortran-compiler │ │ │ │ Conflicts: openmpi-bin │ │ │ │ Breaks: lam4-dev (<< 7.1.4-4), libmpich-dev (<< 3.3~b1-5), libopenmpi-dev (<< 4.0.5-3), mpich (<< 3.3~b1-5) │ │ │ │ Replaces: libopenmpi-dev (<< 4.0.5-3) │ │ │ │ Section: net │ │ │ │ Priority: optional │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ │ │ │ ├── line order │ │ │ │ │ @@ -1,8 +1,9 @@ │ │ │ │ │ usr/bin/aggregate_profile │ │ │ │ │ +usr/bin/mpijavac │ │ │ │ │ usr/bin/mpijavac.pl │ │ │ │ │ usr/bin/ompi_info │ │ │ │ │ usr/bin/opal_wrapper │ │ │ │ │ usr/bin/orte-clean │ │ │ │ │ usr/bin/orte-info │ │ │ │ │ usr/bin/orte-server │ │ │ │ │ usr/bin/orted │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -3,14 +3,15 @@ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-12 11:52:34.000000 ./etc/openmpi/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1661 2022-10-12 11:52:34.000000 ./etc/openmpi/openmpi-default-hostfile │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3357 2022-10-12 11:52:34.000000 ./etc/openmpi/openmpi-mca-params.conf │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1441 2022-10-12 11:52:34.000000 ./etc/openmpi/openmpi-totalview.tcl │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-12 11:52:34.000000 ./usr/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-10-12 11:52:34.000000 ./usr/bin/ │ │ │ │ -rwxr-xr-x 0 root (0) root (0) 1887 2022-10-12 11:52:34.000000 ./usr/bin/aggregate_profile │ │ │ │ +-rwxr-xr-x 0 root (0) root (0) 4819 2022-10-12 11:52:34.000000 ./usr/bin/mpijavac │ │ │ │ -rwxr-xr-x 0 root (0) root (0) 4819 2022-10-12 11:52:34.000000 ./usr/bin/mpijavac.pl │ │ │ │ -rwxr-xr-x 0 root (0) root (0) 22308 2022-10-12 11:52:34.000000 ./usr/bin/ompi_info │ │ │ │ -rwxr-xr-x 0 root (0) root (0) 14112 2022-10-12 11:52:34.000000 ./usr/bin/opal_wrapper │ │ │ │ -rwxr-xr-x 0 root (0) root (0) 10112 2022-10-12 11:52:34.000000 ./usr/bin/orte-clean │ │ │ │ -rwxr-xr-x 0 root (0) root (0) 26640 2022-10-12 11:52:34.000000 ./usr/bin/orte-info │ │ │ │ -rwxr-xr-x 0 root (0) root (0) 10188 2022-10-12 11:52:34.000000 ./usr/bin/orte-server │ │ │ │ -rwxr-xr-x 0 root (0) root (0) 5756 2022-10-12 11:52:34.000000 ./usr/bin/orted │ │ │ │ @@ -46,15 +47,14 @@ │ │ │ │ lrwxrwxrwx 0 root (0) root (0) 0 2022-10-12 11:52:34.000000 ./usr/bin/mpic++.openmpi -> opal_wrapper │ │ │ │ lrwxrwxrwx 0 root (0) root (0) 0 2022-10-12 11:52:34.000000 ./usr/bin/mpicc.openmpi -> opal_wrapper │ │ │ │ lrwxrwxrwx 0 root (0) root (0) 0 2022-10-12 11:52:34.000000 ./usr/bin/mpicxx.openmpi -> opal_wrapper │ │ │ │ lrwxrwxrwx 0 root (0) root (0) 0 2022-10-12 11:52:34.000000 ./usr/bin/mpiexec.openmpi -> orterun │ │ │ │ lrwxrwxrwx 0 root (0) root (0) 0 2022-10-12 11:52:34.000000 ./usr/bin/mpif77.openmpi -> opal_wrapper │ │ │ │ lrwxrwxrwx 0 root (0) root (0) 0 2022-10-12 11:52:34.000000 ./usr/bin/mpif90.openmpi -> opal_wrapper │ │ │ │ lrwxrwxrwx 0 root (0) root (0) 0 2022-10-12 11:52:34.000000 ./usr/bin/mpifort.openmpi -> opal_wrapper │ │ │ │ -lrwxrwxrwx 0 root (0) root (0) 0 2022-10-12 11:52:34.000000 ./usr/bin/mpijavac -> mpijavac.pl │ │ │ │ lrwxrwxrwx 0 root (0) root (0) 0 2022-10-12 11:52:34.000000 ./usr/bin/mpirun.openmpi -> orterun │ │ │ │ lrwxrwxrwx 0 root (0) root (0) 0 2022-10-12 11:52:34.000000 ./usr/bin/ompi-clean -> orte-clean │ │ │ │ lrwxrwxrwx 0 root (0) root (0) 0 2022-10-12 11:52:34.000000 ./usr/bin/ompi-server -> orte-server │ │ │ │ lrwxrwxrwx 0 root (0) root (0) 0 2022-10-12 11:52:34.000000 ./usr/bin/opalc++ -> opal_wrapper │ │ │ │ lrwxrwxrwx 0 root (0) root (0) 0 2022-10-12 11:52:34.000000 ./usr/bin/opalcc -> opal_wrapper │ │ │ │ lrwxrwxrwx 0 root (0) root (0) 0 2022-10-12 11:52:34.000000 ./usr/bin/ortecc -> opal_wrapper │ │ │ │ lrwxrwxrwx 0 root (0) root (0) 0 2022-10-12 11:52:34.000000 ./usr/share/man/man1/mpiCC.openmpi.1.gz -> mpic++.openmpi.1.gz │ │ │ ├── ./usr/bin/mpijavac │ │ │ │ @@ -1,2 +1,302 @@ │ │ │ │ -00000000: 6465 7374 696e 6174 696f 6e3a 206d 7069 destination: mpi │ │ │ │ -00000010: 6a61 7661 632e 706c 0a javac.pl. │ │ │ │ +00000000: 2321 202f 7573 722f 6269 6e2f 7065 726c #! /usr/bin/perl │ │ │ │ +00000010: 0a0a 2320 5741 524e 494e 473a 2044 4f20 ..# WARNING: DO │ │ │ │ +00000020: 4e4f 5420 4544 4954 2054 4845 206d 7069 NOT EDIT THE mpi │ │ │ │ +00000030: 6a61 7661 2e70 6c20 4649 4c45 2041 5320 java.pl FILE AS │ │ │ │ +00000040: 4954 2049 5320 4745 4e45 5241 5445 4421 IT IS GENERATED! │ │ │ │ +00000050: 0a23 2020 2020 2020 2020 2020 4d41 4b45 .# MAKE │ │ │ │ +00000060: 2041 4c4c 2043 4841 4e47 4553 2049 4e20 ALL CHANGES IN │ │ │ │ +00000070: 6d70 696a 6176 612e 706c 2e69 6e0a 0a23 mpijava.pl.in..# │ │ │ │ +00000080: 2043 6f70 7972 6967 6874 2028 6329 2032 Copyright (c) 2 │ │ │ │ +00000090: 3031 312d 3230 3133 2043 6973 636f 2053 011-2013 Cisco S │ │ │ │ +000000a0: 7973 7465 6d73 2c20 496e 632e 2020 416c ystems, Inc. Al │ │ │ │ +000000b0: 6c20 7269 6768 7473 2072 6573 6572 7665 l rights reserve │ │ │ │ +000000c0: 642e 0a23 2043 6f70 7972 6967 6874 2028 d..# Copyright ( │ │ │ │ +000000d0: 6329 2032 3031 3220 2020 2020 204f 7261 c) 2012 Ora │ │ │ │ +000000e0: 636c 6520 616e 642f 6f72 2069 7473 2061 cle and/or its a │ │ │ │ +000000f0: 6666 696c 6961 7465 732e 2020 416c 6c20 ffiliates. All │ │ │ │ +00000100: 7269 6768 7473 2072 6573 6572 7665 642e rights reserved. │ │ │ │ +00000110: 0a0a 7573 6520 7374 7269 6374 3b0a 0a23 ..use strict;..# │ │ │ │ +00000120: 2054 6865 206d 6169 6e20 7075 7270 6f73 The main purpos │ │ │ │ +00000130: 6520 6f66 2074 6869 7320 7772 6170 7065 e of this wrappe │ │ │ │ +00000140: 7220 636f 6d70 696c 6572 2069 7320 746f r compiler is to │ │ │ │ +00000150: 2063 6865 636b 2066 6f72 0a23 2061 6e64 check for.# and │ │ │ │ +00000160: 2061 646a 7573 7420 7468 6520 4a61 7661 adjust the Java │ │ │ │ +00000170: 2063 6c61 7373 2070 6174 6820 746f 2069 class path to i │ │ │ │ +00000180: 6e63 6c75 6465 2074 6865 204f 4d50 4920 nclude the OMPI │ │ │ │ +00000190: 636c 6173 7365 730a 2320 696e 206d 7069 classes.# in mpi │ │ │ │ +000001a0: 2e6a 6172 2e20 5468 6520 7573 6572 206d .jar. The user m │ │ │ │ +000001b0: 6179 2068 6176 6520 7370 6563 6966 6965 ay have specifie │ │ │ │ +000001c0: 6420 6120 636c 6173 7320 7061 7468 206f d a class path o │ │ │ │ +000001d0: 6e0a 2320 6f75 7220 636d 6420 6c69 6e65 n.# our cmd line │ │ │ │ +000001e0: 2c20 6f72 2069 7420 6d61 7920 6265 2069 , or it may be i │ │ │ │ +000001f0: 6e20 7468 6520 656e 7669 726f 6e6d 656e n the environmen │ │ │ │ +00000200: 742c 2073 6f20 7765 2068 6176 650a 2320 t, so we have.# │ │ │ │ +00000210: 746f 2063 6865 636b 2066 6f72 2062 6f74 to check for bot │ │ │ │ +00000220: 682e 2057 6520 616c 736f 206e 6565 6420 h. We also need │ │ │ │ +00000230: 746f 2062 6520 6361 7265 6675 6c20 6e6f to be careful no │ │ │ │ +00000240: 7420 746f 0a23 206a 7573 7420 6f76 6572 t to.# just over │ │ │ │ +00000250: 7269 6465 2074 6865 2063 6c61 7373 2070 ride the class p │ │ │ │ +00000260: 6174 6820 6173 2069 7420 7072 6f62 6162 ath as it probab │ │ │ │ +00000270: 6c79 2069 6e63 6c75 6465 7320 636c 6173 ly includes clas │ │ │ │ +00000280: 7365 730a 2320 7468 6579 206e 6565 6420 ses.# they need │ │ │ │ +00000290: 666f 7220 7468 6569 7220 6170 706c 6963 for their applic │ │ │ │ +000002a0: 6174 696f 6e21 2049 7420 616c 736f 206d ation! It also m │ │ │ │ +000002b0: 6179 2061 6c72 6561 6479 2069 6e63 6c75 ay already inclu │ │ │ │ +000002c0: 6465 0a23 2074 6865 2070 6174 6820 746f de.# the path to │ │ │ │ +000002d0: 206d 7069 2e6a 6172 2c20 616e 6420 7768 mpi.jar, and wh │ │ │ │ +000002e0: 696c 6520 6974 2064 6f65 736e 2774 2068 ile it doesn't h │ │ │ │ +000002f0: 7572 7420 616e 7974 6869 6e67 2c20 7765 urt anything, we │ │ │ │ +00000300: 0a23 2064 6f6e 2774 2077 616e 7420 746f .# don't want to │ │ │ │ +00000310: 2069 6e63 6c75 6465 206f 7572 2063 6c61 include our cla │ │ │ │ +00000320: 7373 2070 6174 6820 6d6f 7265 2074 6861 ss path more tha │ │ │ │ +00000330: 6e20 6f6e 6365 2074 6f20 6176 6f69 640a n once to avoid. │ │ │ │ +00000340: 2320 7573 6572 2061 7374 6f6e 6973 686d # user astonishm │ │ │ │ +00000350: 656e 740a 0a23 204c 6574 2074 6865 2062 ent..# Let the b │ │ │ │ +00000360: 7569 6c64 2073 7973 7465 6d20 7072 6f76 uild system prov │ │ │ │ +00000370: 6964 6520 7573 2077 6974 6820 736f 6d65 ide us with some │ │ │ │ +00000380: 2063 7269 7469 6361 6c20 7661 6c75 6573 critical values │ │ │ │ +00000390: 0a6d 7920 246d 795f 636f 6d70 696c 6572 .my $my_compiler │ │ │ │ +000003a0: 203d 2022 2f75 7372 2f6c 6962 2f6a 766d = "/usr/lib/jvm │ │ │ │ +000003b0: 2f64 6566 6175 6c74 2d6a 6176 612f 6269 /default-java/bi │ │ │ │ +000003c0: 6e2f 6a61 7661 6322 3b0a 6d79 2024 6d70 n/javac";.my $mp │ │ │ │ +000003d0: 695f 6a61 7220 2020 3d20 222f 7573 722f i_jar = "/usr/ │ │ │ │ +000003e0: 6c69 622f 6172 6d2d 6c69 6e75 782d 676e lib/arm-linux-gn │ │ │ │ +000003f0: 7565 6162 6968 662f 6f70 656e 6d70 692f ueabihf/openmpi/ │ │ │ │ +00000400: 6c69 622f 6d70 692e 6a61 7222 3b0a 6d79 lib/mpi.jar";.my │ │ │ │ +00000410: 2024 7368 6d65 6d5f 6a61 7220 3d20 222f $shmem_jar = "/ │ │ │ │ +00000420: 7573 722f 6c69 622f 6172 6d2d 6c69 6e75 usr/lib/arm-linu │ │ │ │ +00000430: 782d 676e 7565 6162 6968 662f 6f70 656e x-gnueabihf/open │ │ │ │ +00000440: 6d70 692f 6c69 622f 7368 6d65 6d2e 6a61 mpi/lib/shmem.ja │ │ │ │ +00000450: 7222 3b0a 0a23 2067 6c6f 6261 6c73 0a6d r";..# globals.m │ │ │ │ +00000460: 7920 2473 686f 776d 655f 6172 6720 3d20 y $showme_arg = │ │ │ │ +00000470: 303b 0a6d 7920 2476 6572 626f 7365 203d 0;.my $verbose = │ │ │ │ +00000480: 2030 3b0a 6d79 2024 6d79 5f61 7267 3b0a 0;.my $my_arg;. │ │ │ │ +00000490: 0a23 2043 616e 6e6f 7420 7573 6520 7468 .# Cannot use th │ │ │ │ +000004a0: 6520 7573 7561 6c20 4765 744f 7074 7320 e usual GetOpts │ │ │ │ +000004b0: 6c69 6272 6172 7920 6173 2074 6865 2075 library as the u │ │ │ │ +000004c0: 7365 7220 6d69 6768 740a 2320 6265 2070 ser might.# be p │ │ │ │ +000004d0: 6173 7369 6e67 202d 6f70 7469 6f6e 7320 assing -options │ │ │ │ +000004e0: 746f 2074 6865 204a 6176 6120 636f 6d70 to the Java comp │ │ │ │ +000004f0: 696c 6572 2120 536f 2068 6176 6520 746f iler! So have to │ │ │ │ +00000500: 0a23 2070 6172 7365 2074 6865 206f 7074 .# parse the opt │ │ │ │ +00000510: 696f 6e73 206f 7572 7365 6c76 6573 2074 ions ourselves t │ │ │ │ +00000520: 6f20 6c6f 6f6b 2066 6f72 2068 656c 7020 o look for help │ │ │ │ +00000530: 616e 6420 7368 6f77 6d65 0a6d 7920 4073 and showme.my @s │ │ │ │ +00000540: 6176 655f 6172 6773 3b0a 666f 7265 6163 ave_args;.foreac │ │ │ │ +00000550: 6820 246d 795f 6172 6720 2840 4152 4756 h $my_arg (@ARGV │ │ │ │ +00000560: 2920 7b0a 2020 2020 6966 2028 246d 795f ) {. if ($my_ │ │ │ │ +00000570: 6172 6720 6571 2022 2d68 2220 7c7c 0a20 arg eq "-h" ||. │ │ │ │ +00000580: 2020 2020 2020 2024 6d79 5f61 7267 2065 $my_arg e │ │ │ │ +00000590: 7120 222d 2d68 2220 7c7c 0a20 2020 2020 q "--h" ||. │ │ │ │ +000005a0: 2020 2024 6d79 5f61 7267 2065 7120 222d $my_arg eq "- │ │ │ │ +000005b0: 6865 6c70 2220 7c7c 0a20 2020 2020 2020 help" ||. │ │ │ │ +000005c0: 2024 6d79 5f61 7267 2065 7120 222d 2d68 $my_arg eq "--h │ │ │ │ +000005d0: 656c 7022 2920 7b0a 2020 2020 2020 2020 elp") {. │ │ │ │ +000005e0: 7072 696e 7420 224f 7074 696f 6e73 3a0a print "Options:. │ │ │ │ +000005f0: 2020 2d2d 7368 6f77 6d65 2020 2020 2020 --showme │ │ │ │ +00000600: 2020 2020 2020 2020 2020 2020 2020 2020 │ │ │ │ +00000610: 5368 6f77 2074 6865 2077 7261 7070 6572 Show the wrapper │ │ │ │ +00000620: 2063 6f6d 7069 6c65 7220 636f 6d6d 616e compiler comman │ │ │ │ +00000630: 6420 7769 7468 6f75 7420 6578 6563 7574 d without execut │ │ │ │ +00000640: 696e 6720 6974 0a20 202d 2d76 6572 626f ing it. --verbo │ │ │ │ +00000650: 7365 2020 2020 2020 2020 2020 2020 2020 se │ │ │ │ +00000660: 2020 2020 2020 2053 686f 7720 7468 6520 Show the │ │ │ │ +00000670: 7772 6170 7065 7220 636f 6d70 696c 6572 wrapper compiler │ │ │ │ +00000680: 2063 6f6d 6d61 6e64 202a 616e 642a 2065 command *and* e │ │ │ │ +00000690: 7865 6375 7465 2069 740a 2020 2d2d 6865 xecute it. --he │ │ │ │ +000006a0: 6c70 207c 202d 6820 2020 2020 2020 2020 lp | -h │ │ │ │ +000006b0: 2020 2020 2020 2020 2020 5468 6973 2068 This h │ │ │ │ +000006c0: 656c 7020 6c69 7374 5c6e 223b 0a20 2020 elp list\n";. │ │ │ │ +000006d0: 2020 2020 2065 7869 7428 3029 3b0a 2020 exit(0);. │ │ │ │ +000006e0: 2020 7d20 656c 7369 6620 2824 6d79 5f61 } elsif ($my_a │ │ │ │ +000006f0: 7267 2065 7120 222d 2d73 686f 776d 6522 rg eq "--showme" │ │ │ │ +00000700: 2920 7b0a 2020 2020 2020 2020 2473 686f ) {. $sho │ │ │ │ +00000710: 776d 655f 6172 6720 3d20 313b 0a20 2020 wme_arg = 1;. │ │ │ │ +00000720: 207d 2065 6c73 6966 2028 246d 795f 6172 } elsif ($my_ar │ │ │ │ +00000730: 6720 6571 2022 2d2d 7665 7262 6f73 6522 g eq "--verbose" │ │ │ │ +00000740: 2920 7b0a 2020 2020 2020 2020 2476 6572 ) {. $ver │ │ │ │ +00000750: 626f 7365 203d 2031 3b0a 2020 2020 7d20 bose = 1;. } │ │ │ │ +00000760: 656c 7365 207b 0a20 2020 2020 2020 2070 else {. p │ │ │ │ +00000770: 7573 6828 4073 6176 655f 6172 6773 2c20 ush(@save_args, │ │ │ │ +00000780: 246d 795f 6172 6729 3b0a 2020 2020 7d0a $my_arg);. }. │ │ │ │ +00000790: 7d0a 0a23 2043 7265 6174 6520 6120 706c }..# Create a pl │ │ │ │ +000007a0: 6163 6520 746f 2073 6176 6520 6f75 7220 ace to save our │ │ │ │ +000007b0: 6172 6776 2061 7272 6179 2073 6f20 7765 argv array so we │ │ │ │ +000007c0: 2063 616e 2065 6469 7420 616e 790a 2320 can edit any.# │ │ │ │ +000007d0: 7072 6f76 6964 6520 636c 6173 7320 7061 provide class pa │ │ │ │ +000007e0: 7468 206f 7074 696f 6e0a 6d79 2040 6172 th option.my @ar │ │ │ │ +000007f0: 6775 6d65 6e74 7320 3d20 2829 3b0a 0a23 guments = ();..# │ │ │ │ +00000800: 2043 6865 636b 2074 6865 2063 6f6d 6d61 Check the comma │ │ │ │ +00000810: 6e64 206c 696e 6520 666f 7220 6120 636c nd line for a cl │ │ │ │ +00000820: 6173 7320 7061 7468 0a6d 7920 2463 705f ass path.my $cp_ │ │ │ │ +00000830: 666f 756e 6420 3d20 303b 0a6d 7920 246d found = 0;.my $m │ │ │ │ +00000840: 795f 6370 3b0a 666f 7265 6163 6820 246d y_cp;.foreach $m │ │ │ │ +00000850: 795f 6172 6720 2840 7361 7665 5f61 7267 y_arg (@save_arg │ │ │ │ +00000860: 7329 207b 0a20 2020 2069 6620 2831 203d s) {. if (1 = │ │ │ │ +00000870: 3d20 2463 705f 666f 756e 6429 207b 0a20 = $cp_found) {. │ │ │ │ +00000880: 2020 2020 2020 2024 6d79 5f63 7020 3d20 $my_cp = │ │ │ │ +00000890: 246d 795f 6172 673b 0a20 2020 2020 2020 $my_arg;. │ │ │ │ +000008a0: 2069 6620 2830 203e 2069 6e64 6578 2824 if (0 > index($ │ │ │ │ +000008b0: 6d79 5f61 7267 2c20 226d 7069 2e6a 6172 my_arg, "mpi.jar │ │ │ │ +000008c0: 2229 2920 7b0a 2020 2020 2020 2020 2020 ")) {. │ │ │ │ +000008d0: 2020 2320 6e6f 7420 666f 756e 642c 2073 # not found, s │ │ │ │ +000008e0: 6f20 7765 2061 6464 206f 7572 2070 6174 o we add our pat │ │ │ │ +000008f0: 680a 2020 2020 2020 2020 2020 2020 6966 h. if │ │ │ │ +00000900: 2028 7269 6e64 6578 2824 6d79 5f61 7267 (rindex($my_arg │ │ │ │ +00000910: 2c20 223a 2229 203d 3d20 6c65 6e67 7468 , ":") == length │ │ │ │ +00000920: 2824 6d79 5f61 7267 292d 3129 207b 0a20 ($my_arg)-1) {. │ │ │ │ +00000930: 2020 2020 2020 2020 2020 2020 2020 2023 # │ │ │ │ +00000940: 2061 6c72 6561 6479 2068 6176 6520 6120 already have a │ │ │ │ +00000950: 636f 6c6f 6e20 6174 2074 6865 2065 6e64 colon at the end │ │ │ │ +00000960: 0a20 2020 2020 2020 2020 2020 2020 2020 . │ │ │ │ +00000970: 2024 6d79 5f63 7020 3d20 246d 795f 6370 $my_cp = $my_cp │ │ │ │ +00000980: 202e 2024 6d70 695f 6a61 723b 0a20 2020 . $mpi_jar;. │ │ │ │ +00000990: 2020 2020 2020 2020 207d 2065 6c73 6520 } else │ │ │ │ +000009a0: 7b0a 2020 2020 2020 2020 2020 2020 2020 {. │ │ │ │ +000009b0: 2020 2320 6e65 6564 2074 6f20 6164 6420 # need to add │ │ │ │ +000009c0: 7468 6520 636f 6c6f 6e20 6265 7477 6565 the colon betwee │ │ │ │ +000009d0: 6e20 7061 7468 730a 2020 2020 2020 2020 n paths. │ │ │ │ +000009e0: 2020 2020 2020 2020 246d 795f 6370 203d $my_cp = │ │ │ │ +000009f0: 2024 6d79 5f63 7020 2e20 223a 2220 2e20 $my_cp . ":" . │ │ │ │ +00000a00: 246d 7069 5f6a 6172 3b0a 2020 2020 2020 $mpi_jar;. │ │ │ │ +00000a10: 2020 2020 2020 7d0a 2020 2020 2020 2020 }. │ │ │ │ +00000a20: 7d0a 2020 2020 2020 2020 6966 2028 3020 }. if (0 │ │ │ │ +00000a30: 3e20 696e 6465 7828 246d 795f 6172 672c > index($my_arg, │ │ │ │ +00000a40: 2022 7368 6d65 6d2e 6a61 7222 2929 207b "shmem.jar")) { │ │ │ │ +00000a50: 0a20 2020 2020 2020 2020 2020 2023 206e . # n │ │ │ │ +00000a60: 6f74 2066 6f75 6e64 2c20 736f 2077 6520 ot found, so we │ │ │ │ +00000a70: 6164 6420 6f75 7220 7061 7468 0a20 2020 add our path. │ │ │ │ +00000a80: 2020 2020 2020 2020 2069 6620 2872 696e if (rin │ │ │ │ +00000a90: 6465 7828 246d 795f 6172 672c 2022 3a22 dex($my_arg, ":" │ │ │ │ +00000aa0: 2920 3d3d 206c 656e 6774 6828 246d 795f ) == length($my_ │ │ │ │ +00000ab0: 6172 6729 2d31 2920 7b0a 2020 2020 2020 arg)-1) {. │ │ │ │ +00000ac0: 2020 2020 2020 2020 2020 2320 616c 7265 # alre │ │ │ │ +00000ad0: 6164 7920 6861 7665 2061 2063 6f6c 6f6e ady have a colon │ │ │ │ +00000ae0: 2061 7420 7468 6520 656e 640a 2020 2020 at the end. │ │ │ │ +00000af0: 2020 2020 2020 2020 2020 2020 246d 795f $my_ │ │ │ │ +00000b00: 6370 203d 2024 6d79 5f63 7020 2e20 2473 cp = $my_cp . $s │ │ │ │ +00000b10: 686d 656d 5f6a 6172 3b0a 2020 2020 2020 hmem_jar;. │ │ │ │ +00000b20: 2020 2020 2020 7d20 656c 7365 207b 0a20 } else {. │ │ │ │ +00000b30: 2020 2020 2020 2020 2020 2020 2020 2023 # │ │ │ │ +00000b40: 206e 6565 6420 746f 2061 6464 2074 6865 need to add the │ │ │ │ +00000b50: 2063 6f6c 6f6e 2062 6574 7765 656e 2070 colon between p │ │ │ │ +00000b60: 6174 6873 0a20 2020 2020 2020 2020 2020 aths. │ │ │ │ +00000b70: 2020 2020 2024 6d79 5f63 7020 3d20 246d $my_cp = $m │ │ │ │ +00000b80: 795f 6370 202e 2022 3a22 202e 2024 7368 y_cp . ":" . $sh │ │ │ │ +00000b90: 6d65 6d5f 6a61 723b 0a20 2020 2020 2020 mem_jar;. │ │ │ │ +00000ba0: 2020 2020 207d 0a20 2020 2020 2020 207d }. } │ │ │ │ +00000bb0: 0a20 2020 2020 2020 2070 7573 6828 4061 . push(@a │ │ │ │ +00000bc0: 7267 756d 656e 7473 2c20 246d 795f 6370 rguments, $my_cp │ │ │ │ +00000bd0: 293b 0a20 2020 2020 2020 2024 6370 5f66 );. $cp_f │ │ │ │ +00000be0: 6f75 6e64 203d 2032 3b0a 2020 2020 7d20 ound = 2;. } │ │ │ │ +00000bf0: 656c 7365 207b 0a20 2020 2020 2020 2069 else {. i │ │ │ │ +00000c00: 6620 2830 203d 3d20 2463 705f 666f 756e f (0 == $cp_foun │ │ │ │ +00000c10: 6420 2626 2028 0a20 2020 2020 2020 2020 d && (. │ │ │ │ +00000c20: 2020 2030 203c 3d20 696e 6465 7828 246d 0 <= index($m │ │ │ │ +00000c30: 795f 6172 672c 2022 2d63 7022 2920 7c7c y_arg, "-cp") || │ │ │ │ +00000c40: 0a20 2020 2020 2020 2020 2020 2030 203c . 0 < │ │ │ │ +00000c50: 3d20 696e 6465 7828 246d 795f 6172 672c = index($my_arg, │ │ │ │ +00000c60: 2022 2d63 6c61 7373 7061 7468 2229 2929 "-classpath"))) │ │ │ │ +00000c70: 0a20 2020 2020 2020 207b 0a20 2020 2020 . {. │ │ │ │ +00000c80: 2020 2020 2020 2024 6370 5f66 6f75 6e64 $cp_found │ │ │ │ +00000c90: 203d 2031 3b0a 2020 2020 2020 2020 7d0a = 1;. }. │ │ │ │ +00000ca0: 2020 2020 2020 2020 7075 7368 2840 6172 push(@ar │ │ │ │ +00000cb0: 6775 6d65 6e74 732c 2024 6d79 5f61 7267 guments, $my_arg │ │ │ │ +00000cc0: 293b 0a20 2020 207d 0a7d 0a0a 2320 4966 );. }.}..# If │ │ │ │ +00000cd0: 2074 6865 2063 6c61 7373 2070 6174 6820 the class path │ │ │ │ +00000ce0: 7761 736e 2774 2066 6f75 6e64 206f 6e20 wasn't found on │ │ │ │ +00000cf0: 7468 6520 636d 6420 6c69 6e65 2c20 7468 the cmd line, th │ │ │ │ +00000d00: 656e 0a23 2077 6520 6e65 7874 2063 6865 en.# we next che │ │ │ │ +00000d10: 636b 2074 6865 2063 6c61 7373 2070 6174 ck the class pat │ │ │ │ +00000d20: 6820 696e 2074 6865 2065 6e76 6972 6f6e h in the environ │ │ │ │ +00000d30: 6d65 6e74 2c20 6966 2069 7420 6578 6973 ment, if it exis │ │ │ │ +00000d40: 7473 0a69 6620 2832 2021 3d20 2463 705f ts.if (2 != $cp_ │ │ │ │ +00000d50: 666f 756e 6420 2626 2065 7869 7374 7320 found && exists │ │ │ │ +00000d60: 2445 4e56 7b27 434c 4153 5350 4154 4827 $ENV{'CLASSPATH' │ │ │ │ +00000d70: 7d20 2626 206c 656e 6774 6828 2445 4e56 } && length($ENV │ │ │ │ +00000d80: 7b27 434c 4153 5350 4154 4827 7d29 203e {'CLASSPATH'}) > │ │ │ │ +00000d90: 2030 2920 7b0a 2020 2020 246d 795f 6370 0) {. $my_cp │ │ │ │ +00000da0: 203d 2024 454e 567b 2743 4c41 5353 5041 = $ENV{'CLASSPA │ │ │ │ +00000db0: 5448 277d 3b0a 2020 2020 6966 2830 203e TH'};. if(0 > │ │ │ │ +00000dc0: 2069 6e64 6578 2824 6d79 5f63 702c 2022 index($my_cp, " │ │ │ │ +00000dd0: 6d70 692e 6a61 7222 2929 207b 0a20 2020 mpi.jar")) {. │ │ │ │ +00000de0: 2020 2020 2023 206e 6f74 2066 6f75 6e64 # not found │ │ │ │ +00000df0: 2c20 736f 2077 6520 6164 6420 6f75 7220 , so we add our │ │ │ │ +00000e00: 7061 7468 0a20 2020 2020 2020 2069 6620 path. if │ │ │ │ +00000e10: 2872 696e 6465 7828 246d 795f 6370 2c20 (rindex($my_cp, │ │ │ │ +00000e20: 223a 2229 203d 3d20 6c65 6e67 7468 2824 ":") == length($ │ │ │ │ +00000e30: 6d79 5f63 7029 2d31 2920 7b0a 2020 2020 my_cp)-1) {. │ │ │ │ +00000e40: 2020 2020 2020 2020 2320 616c 7265 6164 # alread │ │ │ │ +00000e50: 7920 6861 7665 2061 2063 6f6c 6f6e 2061 y have a colon a │ │ │ │ +00000e60: 7420 7468 6520 656e 640a 2020 2020 2020 t the end. │ │ │ │ +00000e70: 2020 2020 2020 246d 795f 6370 203d 2024 $my_cp = $ │ │ │ │ +00000e80: 6d79 5f63 7020 2e20 246d 7069 5f6a 6172 my_cp . $mpi_jar │ │ │ │ +00000e90: 3b0a 2020 2020 2020 2020 7d20 656c 7365 ;. } else │ │ │ │ +00000ea0: 207b 0a20 2020 2020 2020 2020 2020 2023 {. # │ │ │ │ +00000eb0: 206e 6565 6420 746f 2061 6464 2074 6865 need to add the │ │ │ │ +00000ec0: 2063 6f6c 6f6e 2062 6574 7765 656e 2070 colon between p │ │ │ │ +00000ed0: 6174 6873 0a20 2020 2020 2020 2020 2020 aths. │ │ │ │ +00000ee0: 2024 6d79 5f63 7020 3d20 246d 795f 6370 $my_cp = $my_cp │ │ │ │ +00000ef0: 202e 2022 3a22 202e 2024 6d70 695f 6a61 . ":" . $mpi_ja │ │ │ │ +00000f00: 723b 0a20 2020 2020 2020 207d 0a20 2020 r;. }. │ │ │ │ +00000f10: 207d 0a20 2020 2069 6620 2830 203e 2069 }. if (0 > i │ │ │ │ +00000f20: 6e64 6578 2824 6d79 5f63 702c 2022 7368 ndex($my_cp, "sh │ │ │ │ +00000f30: 6d65 6d2e 6a61 7222 2929 207b 0a20 2020 mem.jar")) {. │ │ │ │ +00000f40: 2020 2020 2023 206e 6f74 2066 6f75 6e64 # not found │ │ │ │ +00000f50: 2c20 736f 2077 6520 6164 6420 6f75 7220 , so we add our │ │ │ │ +00000f60: 7061 7468 0a20 2020 2020 2020 2069 6620 path. if │ │ │ │ +00000f70: 2872 696e 6465 7828 246d 795f 6370 2c20 (rindex($my_cp, │ │ │ │ +00000f80: 223a 2229 203d 3d20 6c65 6e67 7468 2824 ":") == length($ │ │ │ │ +00000f90: 6d79 5f63 7029 2d31 2920 7b0a 2020 2020 my_cp)-1) {. │ │ │ │ +00000fa0: 2020 2020 2020 2020 2320 616c 7265 6164 # alread │ │ │ │ +00000fb0: 7920 6861 7665 2061 2063 6f6c 6f6e 2061 y have a colon a │ │ │ │ +00000fc0: 7420 7468 6520 656e 640a 2020 2020 2020 t the end. │ │ │ │ +00000fd0: 2020 2020 2020 246d 795f 6370 203d 2024 $my_cp = $ │ │ │ │ +00000fe0: 6d79 5f63 7020 2e20 2473 686d 656d 5f6a my_cp . $shmem_j │ │ │ │ +00000ff0: 6172 3b0a 2020 2020 2020 2020 7d20 656c ar;. } el │ │ │ │ +00001000: 7365 207b 0a20 2020 2020 2020 2020 2020 se {. │ │ │ │ +00001010: 2023 206e 6565 6420 746f 2061 6464 2074 # need to add t │ │ │ │ +00001020: 6865 2063 6f6c 6f6e 2062 6574 7765 656e he colon between │ │ │ │ +00001030: 2070 6174 6873 0a20 2020 2020 2020 2020 paths. │ │ │ │ +00001040: 2020 2024 6d79 5f63 7020 3d20 246d 795f $my_cp = $my_ │ │ │ │ +00001050: 6370 202e 2022 3a22 202e 2024 7368 6d65 cp . ":" . $shme │ │ │ │ +00001060: 6d5f 6a61 723b 0a20 2020 2020 2020 207d m_jar;. } │ │ │ │ +00001070: 0a20 2020 207d 0a20 2020 2075 6e73 6869 . }. unshi │ │ │ │ +00001080: 6674 2840 6172 6775 6d65 6e74 732c 2024 ft(@arguments, $ │ │ │ │ +00001090: 6d79 5f63 7029 3b0a 2020 2020 756e 7368 my_cp);. unsh │ │ │ │ +000010a0: 6966 7428 4061 7267 756d 656e 7473 2c20 ift(@arguments, │ │ │ │ +000010b0: 222d 6370 2229 3b0a 2020 2020 2320 656e "-cp");. # en │ │ │ │ +000010c0: 7375 7265 2077 6520 6d61 726b 2074 6861 sure we mark tha │ │ │ │ +000010d0: 7420 7765 2022 666f 756e 6422 2074 6865 t we "found" the │ │ │ │ +000010e0: 2063 6c61 7373 2070 6174 680a 2020 2020 class path. │ │ │ │ +000010f0: 2463 705f 666f 756e 6420 3d20 313b 0a7d $cp_found = 1;.} │ │ │ │ +00001100: 0a0a 2320 4966 2074 6865 2063 6c61 7373 ..# If the class │ │ │ │ +00001110: 2070 6174 6820 7761 736e 2774 2066 6f75 path wasn't fou │ │ │ │ +00001120: 6e64 2069 6e20 6569 7468 6572 206c 6f63 nd in either loc │ │ │ │ +00001130: 6174 696f 6e2c 2074 6865 6e0a 2320 7765 ation, then.# we │ │ │ │ +00001140: 2068 6176 6520 746f 2069 6e73 6572 7420 have to insert │ │ │ │ +00001150: 6974 2061 7320 7468 6520 6669 7273 7420 it as the first │ │ │ │ +00001160: 6172 6775 6d65 6e74 0a69 6620 2830 203d argument.if (0 = │ │ │ │ +00001170: 3d20 2463 705f 666f 756e 6429 207b 0a20 = $cp_found) {. │ │ │ │ +00001180: 2020 2075 6e73 6869 6674 2840 6172 6775 unshift(@argu │ │ │ │ +00001190: 6d65 6e74 732c 2024 6d70 695f 6a61 7220 ments, $mpi_jar │ │ │ │ +000011a0: 2e20 223a 2220 2e20 2473 686d 656d 5f6a . ":" . $shmem_j │ │ │ │ +000011b0: 6172 293b 0a20 2020 2075 6e73 6869 6674 ar);. unshift │ │ │ │ +000011c0: 2840 6172 6775 6d65 6e74 732c 2022 2d63 (@arguments, "-c │ │ │ │ +000011d0: 7022 293b 0a7d 0a0a 2320 436f 6e73 7472 p");.}..# Constr │ │ │ │ +000011e0: 7563 7420 7468 6520 636f 6d6d 616e 640a uct the command. │ │ │ │ +000011f0: 6d79 2024 7265 7475 726e 436f 6465 203d my $returnCode = │ │ │ │ +00001200: 2030 3b0a 6966 2028 2473 686f 776d 655f 0;.if ($showme_ │ │ │ │ +00001210: 6172 6729 207b 0a20 2020 2070 7269 6e74 arg) {. print │ │ │ │ +00001220: 2022 246d 795f 636f 6d70 696c 6572 2040 "$my_compiler @ │ │ │ │ +00001230: 6172 6775 6d65 6e74 735c 6e22 3b0a 7d20 arguments\n";.} │ │ │ │ +00001240: 656c 7365 207b 0a20 2020 2069 6620 2824 else {. if ($ │ │ │ │ +00001250: 7665 7262 6f73 6529 207b 0a20 2020 2020 verbose) {. │ │ │ │ +00001260: 2020 2070 7269 6e74 2022 246d 795f 636f print "$my_co │ │ │ │ +00001270: 6d70 696c 6572 2040 6172 6775 6d65 6e74 mpiler @argument │ │ │ │ +00001280: 735c 6e22 3b0a 2020 2020 7d0a 2020 2020 s\n";. }. │ │ │ │ +00001290: 2472 6574 7572 6e43 6f64 6520 3d20 7379 $returnCode = sy │ │ │ │ +000012a0: 7374 656d 2024 6d79 5f63 6f6d 7069 6c65 stem $my_compile │ │ │ │ +000012b0: 722c 2040 6172 6775 6d65 6e74 733b 0a7d r, @arguments;.} │ │ │ │ +000012c0: 0a65 7869 7420 2472 6574 7572 6e43 6f64 .exit $returnCod │ │ │ │ +000012d0: 653b 0a e;.