Install failing

352 views
Skip to first unread message

Pravesh Jamgade

unread,
Oct 13, 2021, 5:59:31 AM10/13/21
to Sniper simulator
Getting errror:
"   CC '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/src/hash_table.c' ==> '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/parsec/obj/hash_table.o'
/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/src/hash_table.c:24:10: fatal error: gsl/gsl_rng.h: No such file or directory
   24 | #include <gsl/gsl_rng.h>"

if i install gsl error goes away, but gls is provided in codebase. How can i fix these ??

I tried by installing gsl externally on system. And i get a error "Undefined HUGE variable"  in file ferret-parallel.c and ferret-serial.c   from folder "sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/benchmark/"

Then, upon editing HUGE to HUGE_VAL which is a expected variable. And recompiling again, both files revert back to state where HUGE variable is used in them.

Please shed some light ont it!

Best,
Pravesh

Pravesh Jamgade

unread,
Oct 14, 2021, 1:53:54 AM10/14/21
to Sniper simulator

[PARSEC] [========== PARSEC 2.1 BUILD LOGFILE ==========]

[PARSEC] Build amd64-linux.gcc-sniper started on Thursday 14 October 2021 11:21:06 AM IST.
[PARSEC] Packages to build: blackscholes bodytrack facesim ferret freqmine raytrace swaptions fluidanimate vips x264 canneal dedup streamcluster

[PARSEC] [========== Building package blackscholes ==========]
[PARSEC] [---------- Analyzing package blackscholes ----------]
[PARSEC] Package blackscholes already exists, proceeding.

[PARSEC] [========== Building package bodytrack ==========]
[PARSEC] [---------- Analyzing package bodytrack ----------]
[PARSEC] Package bodytrack already exists, proceeding.

[PARSEC] [========== Building package facesim ==========]
[PARSEC] [---------- Analyzing package facesim ----------]
[PARSEC] Package facesim already exists, proceeding.

[PARSEC] [========== Building package ferret ==========]
[PARSEC] [---------- Analyzing package ferret ----------]
[PARSEC] ferret depends on: hooks gsl imagick
[PARSEC] [---------- Analyzing package hooks ----------]
[PARSEC] Package hooks already exists, proceeding.
[PARSEC] [---------- Analyzing package gsl ----------]
[PARSEC] Package gsl already exists, proceeding.
[PARSEC] [---------- Analyzing package imagick ----------]
[PARSEC] Package imagick already exists, proceeding.
[PARSEC] [---------- Building package ferret ----------]
[PARSEC] Removing old build directory.
[PARSEC] Copying source code of package ferret.
make[2]: Entering directory '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper'
mkdir -p /home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/parsec/bin
mkdir -p /home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/parsec/lib
mkdir -p /home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/parsec/obj
CC '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/src/heap.c' ==> '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/parsec/obj/heap.o'
CC '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/src/stat.c' ==> '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/parsec/obj/stat.o'
CC '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/src/cass_reg.c' ==> '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/parsec/obj/cass_reg.o'
CC '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/src/arena.c' ==> '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/parsec/obj/arena.o'
CC '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/src/error.c' ==> '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/parsec/obj/error.o'
CC '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/src/queue.c' ==> '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/parsec/obj/queue.o'
CC '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/src/dist.c' ==> '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/parsec/obj/dist.o'
CC '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/src/env.c' ==> '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/parsec/obj/env.o'
CC '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/src/dataset.c' ==> '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/parsec/obj/dataset.o'
CC '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/src/tp.c' ==> '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/parsec/obj/tp.o'
CC '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/src/topk.c' ==> '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/parsec/obj/topk.o'
CC '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/src/table.c' ==> '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/parsec/obj/table.o'
CC '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/src/cass.c' ==> '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/parsec/obj/cass.o'
CC '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/src/raw.c' ==> '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/parsec/obj/raw.o'
CC '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/src/tpool.c' ==> '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/parsec/obj/tpool.o'
CC '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/src/cuckoo_hash.c' ==> '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/parsec/obj/cuckoo_hash.o'
CC '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/src/hash.c' ==> '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/parsec/obj/hash.o'
CC '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/src/emd.c' ==> '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/parsec/obj/emd.o'
CC '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/src/util.c' ==> '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/parsec/obj/util.o'
CC '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/src/cass_dist.c' ==> '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/parsec/obj/cass_dist.o'
CC '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/src/bitmap.c' ==> '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/parsec/obj/bitmap.o'
CC '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/src/import.c' ==> '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/parsec/obj/import.o'
CC '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/src/timer.c' ==> '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/parsec/obj/timer.o'
CC '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/src/map.c' ==> '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/parsec/obj/map.o'
CC '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/src/matrix.c' ==> '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/parsec/obj/matrix.o'
CC '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/src/assign.c' ==> '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/parsec/obj/assign.o'
CC '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/src/hash_table.c' ==> '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper/parsec/obj/hash_table.o'
make[2]: Leaving directory '/home/pravesh/Documents/sniper-latest/sniper-7.4/benchmarks/parsec/parsec-2.1/pkgs/apps/ferret/obj/amd64-linux.gcc-sniper'


Trevor E. Carlson

unread,
Oct 14, 2021, 10:03:18 AM10/14/21
to snip...@googlegroups.com, Pravesh Jamgade
Pravesh,

I’ve been looking at the Benchmarks distribution [1], and thought that the easiest way to get things running was putting everything into a Docker image. Therefore, I’ve generated a new patch (see attached file) that will add a new set of files into the benchmarks/tools/docker directory. Running make there will build the docker image for you and switch over to that environment. From there you can build the benchmarks root using the default gcc version (4.8), and modern Sniper will also compile if you use gcc version 7 in /opt/rh/devtoolset-7/root/usr/bin/. I’ve tested it out on my Ubuntu 20.04 host OSand all of the benchmarks successfully compile (and I’ve run some examples in the latest Sniper version that also works).

Let me know if you run into any issues.

Trevor


benchmarks-root-with-docker.patch

Pravesh Jamgade

unread,
Oct 15, 2021, 1:45:56 AM10/15/21
to Trevor E. Carlson, snip...@googlegroups.com
Hi Trevor, I have used your patch.
i had the failure.

output
====================================
Install     253 Package(s)

Total download size: 316 M
Installed size: 899 M
Downloading Packages:
http://people.centos.org/tru/devtools-2/6/x86_64/RPMS/devtoolset-2-gcc-gfortran-4.8.2-15.el6.x86_64.rpm: [Errno 12] Timeout on https://people.centos.org/tru/devtools-2/6/x86_64/RPMS/devtoolset-2-gcc-gfortran-4.8.2-15.el6.x86_64.rpm: (28, 'Operation too slow. Less than 1 bytes/sec transfered the last 30 seconds')
Trying other mirror.


Error Downloading Packages:
  devtoolset-2-gcc-gfortran-4.8.2-15.el6.x86_64: failure: devtoolset-2-gcc-gfortran-4.8.2-15.el6.x86_64.rpm from testing-devtools-2-centos-6: [Errno 256] No more mirrors to try.

The command '/bin/sh -c yum update -y &&     yum install -y       autoconf       automake       bison-devel       bison       boost-devel       bzip2-devel       cmake       curl-devel       devtoolset-2-gcc       devtoolset-2-gcc-gfortran       devtoolset-2-binutils       devtoolset-2-gcc-c++       devtoolset-7-toolchain       devtoolset-7-gcc-gfortran       flex-devel       flex       freetype-devel       gcc-c++       gettext       git       glibc-static       glibc.i686       libpng-devel       libtool       libxslt       libX11-devel       libXext-devel       libXi-devel       libXmu-devel       libXt-devel       m4       openssh-clients       openssl-devel       patch       perl-ExtUtils-MakeMaker       python-devel       redhat-lsb       scons       sqlite-devel       tar       which       zlib-devel       &&     yum clean all &&     rm -rf /tmp/* /var/tmp/*' returned a non-zero code: 1
make: *** [Makefile:7: build] Error 1

--
--
--
You received this message because you are subscribed to the Google
Groups "Sniper simulator" group.
To post to this group, send email to snip...@googlegroups.com
To unsubscribe from this group, send email to
snipersim+...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/snipersim?hl=en

---
You received this message because you are subscribed to the Google Groups "Sniper simulator" group.
To unsubscribe from this group and stop receiving emails from it, send an email to snipersim+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/snipersim/14f31e95-fde4-4732-b3f2-091b3316cecdn%40googlegroups.com.

Trevor E. Carlson

unread,
Oct 15, 2021, 2:55:20 AM10/15/21
to Pravesh Jamgade, snip...@googlegroups.com
Pravesh,

     Can you try accessing that server directly to download the gfortran RPM (with wget, maybe?). I suspect there might be some internet connectivity issues on your side because this just worked for me yesterday.

Trevor

On Oct 15, 2021, at 1:46 PM, Pravesh Jamgade <pravesh...@gmail.com> wrote:



Trevor E. Carlson

unread,
Oct 15, 2021, 9:03:47 AM10/15/21
to snip...@googlegroups.com, Pravesh Jamgade
Pravesh,

Can you try patching your benchmarks root with this file (it needs to be applied on top of the previous patch). It should fix this error, and, if it works as expected, it should pick up where things left off, and won’t need to re-download everything.

I’ve tested this with my configuration, but please let me know if it also works for you.

Trevor

benchmarks-docker-missing-gid-fix.patch

Pravesh Jamgade

unread,
Oct 19, 2021, 9:42:37 AM10/19/21
to Sniper simulator
Hi, I need help regarding new changes added earlier today.
from /benchmarks/tools/docker, i ran make command.
I got following messages:

pravesh@voyager3:~/Documents/sniper-latest/sniper-7.4/benchmarks/tools/docker$ make
docker build -f ./Dockerfile --target dockerhub --build-arg SNIPER_GIT_REPO= -t benchmarks-pravesh:latest .
Sending build context to Docker daemon  48.13kB
Step 1/4 : FROM snipersim/benchmarks:latest AS dockerhub
 ---> 085a961bd70e
Step 2/4 : ARG SNIPER_GIT_REPO
 ---> Using cache
 ---> 30156d655b91
 ---> Using cache
 ---> 2d0011399ab9
Step 4/4 : RUN git clone $SNIPER_GIT_REPO sniper &&     mkdir -p sniper/pin_kit &&     cd sniper &&     wget --no-check-certificate $PINPLAY_DOWNLOAD &&     tar -x -f $(basename $PINPLAY_DOWNLOAD) --auto-compress --strip-components=1 -C pin_kit &&     rm $(basename $PINPLAY_DOWNLOAD) &&     make
 ---> Running in d852c79d159b
fatal: repository 'sniper' does not exist
The command '/bin/sh -c git clone $SNIPER_GIT_REPO sniper &&     mkdir -p sniper/pin_kit &&     cd sniper &&     wget --no-check-certificate $PINPLAY_DOWNLOAD &&     tar -x -f $(basename $PINPLAY_DOWNLOAD) --auto-compress --strip-components=1 -C pin_kit &&     rm $(basename $PINPLAY_DOWNLOAD) &&     make' returned a non-zero code: 128
make: *** [Makefile:30: build] Error 128


Trevor E. Carlson

unread,
Oct 19, 2021, 9:41:42 PM10/19/21
to snip...@googlegroups.com, pravesh...@gmail.com
Pravesh,

     You’ll need to set and export your SNIPER_GIT_REPO environment variable before running make.

     I’ll need to add a test in there to report a better error up front on the next revision.

Thanks,
Trevor

On Oct 19, 2021, at 9:42 PM, Pravesh Jamgade <pravesh...@gmail.com> wrote:

Hi, I need help regarding new changes added earlier today.
--
--
--
You received this message because you are subscribed to the Google
Groups "Sniper simulator" group.
To post to this group, send email to snip...@googlegroups.com
To unsubscribe from this group, send email to
snipersim+...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/snipersim?hl=en

---
You received this message because you are subscribed to the Google Groups "Sniper simulator" group.
To unsubscribe from this group and stop receiving emails from it, send an email to snipersim+...@googlegroups.com.

Pravesh Jamgade

unread,
Oct 20, 2021, 8:46:14 AM10/20/21
to Sniper simulator
Thanks Trevor,
after running make inside docker folder. i was in docker enverionment. I ran few commands from manual. One of them had gave me below output:
[root@c591cc584863 sniper]# make -C test/fft

cc fft.o -lm -static -L/root/sniper/lib -pthread  -o fft
/opt/rh/devtoolset-7/root/usr/libexec/gcc/x86_64-redhat-linux/7/ld: cannot find -lm
/opt/rh/devtoolset-7/root/usr/libexec/gcc/x86_64-redhat-linux/7/ld: cannot find -lpthread
/opt/rh/devtoolset-7/root/usr/libexec/gcc/x86_64-redhat-linux/7/ld: cannot find -lc
collect2: error: ld returned 1 exit status
make: *** [Makefile:5: fft] Error 1
make: Leaving directory '/root/sniper/test/fft'

Trevor E. Carlson

unread,
Oct 20, 2021, 7:38:38 PM10/20/21
to snip...@googlegroups.com, Pravesh Jamgade
Pravesh,

     For a quick start, can you use the benchmarks root to run the fft benchmark there? I think the issue that you are seeing has to do with the -static option that might not be supported by that GCC version in CentOS.

     Can you go to the benchmarks directory and try running a basic command:

$ cd benchmarks
$ ./run-sniper -p splash2-fft

     That should allow you to run the fft benchmark from Splash 2 and run it in Sniper for you.

Let us know if you are still running into any issues,
Trevor

On Oct 20, 2021, at 8:46 PM, Pravesh Jamgade <pravesh...@gmail.com> wrote:

Thanks Trevor,

Pravesh Jamgade

unread,
Oct 21, 2021, 12:59:26 AM10/21/21
to Trevor E. Carlson, snip...@googlegroups.com
Yes, basic commands works

Reply all
Reply to author
Forward
0 new messages