Pregunta

After upgrading to Linux Kernel version 3.8.8, I noticed the FUSE module was not installed correctly. So I downloaded this fuse package(fuse-2.9.3), extracted it in the Downloads directory, configured it at the command line, then used the make install command and got the following error message:

DALEK fuse-2.9.3 # make V=1 install
Making install in include
make[1]: Entering directory `/home/zermacr0yd/Downloads/fuse-2.9.3/include'
make[2]: Entering directory `/home/zermacr0yd/Downloads/fuse-2.9.3/include'
make[2]: Nothing to be done for `install-exec-am'.
 /bin/mkdir -p '/usr/include/fuse'
 /usr/bin/install -c -m 644 fuse.h fuse_compat.h fuse_common.h fuse_common_compat.h fuse_lowlevel.h fuse_lowlevel_compat.h fuse_opt.h cuse_lowlevel.h '/usr/include/fuse'
 /bin/mkdir -p '/usr/include'
 /usr/bin/install -c -m 644 old/fuse.h ulockmgr.h '/usr/include'
make[2]: Leaving directory `/home/zermacr0yd/Downloads/fuse-2.9.3/include'
make[1]: Leaving directory `/home/zermacr0yd/Downloads/fuse-2.9.3/include'
Making install in lib
make[1]: Entering directory `/home/zermacr0yd/Downloads/fuse-2.9.3/lib'
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../include  -I../include -DFUSERMOUNT_DIR=\"/usr/bin\" -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26   -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -MT fuse.lo -MD -MP -MF .deps/fuse.Tpo -c -o fuse.lo fuse.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../include -I../include -DFUSERMOUNT_DIR=\"/usr/bin\" -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26 -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -MT fuse.lo -MD -MP -MF .deps/fuse.Tpo -c fuse.c  -fPIC -DPIC -o .libs/fuse.o
fuse.c:219:1: warning: missing braces around initializer [-Wmissing-braces]
fuse.c:219:1: warning: (near initialization for 'fuse_context_lock.__data') [-Wmissing-braces]
mv -f .deps/fuse.Tpo .deps/fuse.Plo
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../include  -I../include -DFUSERMOUNT_DIR=\"/usr/bin\" -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26   -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -MT fuse_kern_chan.lo -MD -MP -MF .deps/fuse_kern_chan.Tpo -c -o fuse_kern_chan.lo fuse_kern_chan.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../include -I../include -DFUSERMOUNT_DIR=\"/usr/bin\" -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26 -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -MT fuse_kern_chan.lo -MD -MP -MF .deps/fuse_kern_chan.Tpo -c fuse_kern_chan.c  -fPIC -DPIC -o .libs/fuse_kern_chan.o
mv -f .deps/fuse_kern_chan.Tpo .deps/fuse_kern_chan.Plo
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../include  -I../include -DFUSERMOUNT_DIR=\"/usr/bin\" -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26   -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -MT fuse_loop.lo -MD -MP -MF .deps/fuse_loop.Tpo -c -o fuse_loop.lo fuse_loop.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../include -I../include -DFUSERMOUNT_DIR=\"/usr/bin\" -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26 -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -MT fuse_loop.lo -MD -MP -MF .deps/fuse_loop.Tpo -c fuse_loop.c  -fPIC -DPIC -o .libs/fuse_loop.o
mv -f .deps/fuse_loop.Tpo .deps/fuse_loop.Plo
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../include  -I../include -DFUSERMOUNT_DIR=\"/usr/bin\" -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26   -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -MT fuse_loop_mt.lo -MD -MP -MF .deps/fuse_loop_mt.Tpo -c -o fuse_loop_mt.lo fuse_loop_mt.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../include -I../include -DFUSERMOUNT_DIR=\"/usr/bin\" -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26 -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -MT fuse_loop_mt.lo -MD -MP -MF .deps/fuse_loop_mt.Tpo -c fuse_loop_mt.c  -fPIC -DPIC -o .libs/fuse_loop_mt.o
mv -f .deps/fuse_loop_mt.Tpo .deps/fuse_loop_mt.Plo
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../include  -I../include -DFUSERMOUNT_DIR=\"/usr/bin\" -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26   -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -MT fuse_lowlevel.lo -MD -MP -MF .deps/fuse_lowlevel.Tpo -c -o fuse_lowlevel.lo fuse_lowlevel.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../include -I../include -DFUSERMOUNT_DIR=\"/usr/bin\" -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26 -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -MT fuse_lowlevel.lo -MD -MP -MF .deps/fuse_lowlevel.Tpo -c fuse_lowlevel.c  -fPIC -DPIC -o .libs/fuse_lowlevel.o
mv -f .deps/fuse_lowlevel.Tpo .deps/fuse_lowlevel.Plo
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../include  -I../include -DFUSERMOUNT_DIR=\"/usr/bin\" -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26   -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -MT fuse_mt.lo -MD -MP -MF .deps/fuse_mt.Tpo -c -o fuse_mt.lo fuse_mt.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../include -I../include -DFUSERMOUNT_DIR=\"/usr/bin\" -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26 -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -MT fuse_mt.lo -MD -MP -MF .deps/fuse_mt.Tpo -c fuse_mt.c  -fPIC -DPIC -o .libs/fuse_mt.o
mv -f .deps/fuse_mt.Tpo .deps/fuse_mt.Plo
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../include  -I../include -DFUSERMOUNT_DIR=\"/usr/bin\" -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26   -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -MT fuse_opt.lo -MD -MP -MF .deps/fuse_opt.Tpo -c -o fuse_opt.lo fuse_opt.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../include -I../include -DFUSERMOUNT_DIR=\"/usr/bin\" -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26 -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -MT fuse_opt.lo -MD -MP -MF .deps/fuse_opt.Tpo -c fuse_opt.c  -fPIC -DPIC -o .libs/fuse_opt.o
mv -f .deps/fuse_opt.Tpo .deps/fuse_opt.Plo
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../include  -I../include -DFUSERMOUNT_DIR=\"/usr/bin\" -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26   -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -MT fuse_session.lo -MD -MP -MF .deps/fuse_session.Tpo -c -o fuse_session.lo fuse_session.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../include -I../include -DFUSERMOUNT_DIR=\"/usr/bin\" -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26 -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -MT fuse_session.lo -MD -MP -MF .deps/fuse_session.Tpo -c fuse_session.c  -fPIC -DPIC -o .libs/fuse_session.o
mv -f .deps/fuse_session.Tpo .deps/fuse_session.Plo
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../include  -I../include -DFUSERMOUNT_DIR=\"/usr/bin\" -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26   -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -MT fuse_signals.lo -MD -MP -MF .deps/fuse_signals.Tpo -c -o fuse_signals.lo fuse_signals.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../include -I../include -DFUSERMOUNT_DIR=\"/usr/bin\" -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26 -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -MT fuse_signals.lo -MD -MP -MF .deps/fuse_signals.Tpo -c fuse_signals.c  -fPIC -DPIC -o .libs/fuse_signals.o
mv -f .deps/fuse_signals.Tpo .deps/fuse_signals.Plo
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../include  -I../include -DFUSERMOUNT_DIR=\"/usr/bin\" -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26   -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -MT buffer.lo -MD -MP -MF .deps/buffer.Tpo -c -o buffer.lo buffer.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../include -I../include -DFUSERMOUNT_DIR=\"/usr/bin\" -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26 -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -MT buffer.lo -MD -MP -MF .deps/buffer.Tpo -c buffer.c  -fPIC -DPIC -o .libs/buffer.o
mv -f .deps/buffer.Tpo .deps/buffer.Plo
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../include  -I../include -DFUSERMOUNT_DIR=\"/usr/bin\" -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26   -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -MT cuse_lowlevel.lo -MD -MP -MF .deps/cuse_lowlevel.Tpo -c -o cuse_lowlevel.lo cuse_lowlevel.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../include -I../include -DFUSERMOUNT_DIR=\"/usr/bin\" -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26 -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -MT cuse_lowlevel.lo -MD -MP -MF .deps/cuse_lowlevel.Tpo -c cuse_lowlevel.c  -fPIC -DPIC -o .libs/cuse_lowlevel.o
mv -f .deps/cuse_lowlevel.Tpo .deps/cuse_lowlevel.Plo
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../include  -I../include -DFUSERMOUNT_DIR=\"/usr/bin\" -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26   -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -MT helper.lo -MD -MP -MF .deps/helper.Tpo -c -o helper.lo helper.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../include -I../include -DFUSERMOUNT_DIR=\"/usr/bin\" -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26 -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -MT helper.lo -MD -MP -MF .deps/helper.Tpo -c helper.c  -fPIC -DPIC -o .libs/helper.o
helper.c: In function 'fuse_daemonize':
helper.c:204:3: warning: ignoring return value of 'chdir', declared with attribute warn_unused_result [-Wunused-result]
mv -f .deps/helper.Tpo .deps/helper.Plo
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../include  -I../include -DFUSERMOUNT_DIR=\"/usr/bin\" -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26   -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -MT subdir.lo -MD -MP -MF .deps/subdir.Tpo -c -o subdir.lo `test -f 'modules/subdir.c' || echo './'`modules/subdir.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../include -I../include -DFUSERMOUNT_DIR=\"/usr/bin\" -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26 -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -MT subdir.lo -MD -MP -MF .deps/subdir.Tpo -c modules/subdir.c  -fPIC -DPIC -o .libs/subdir.o
mv -f .deps/subdir.Tpo .deps/subdir.Plo
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../include  -I../include -DFUSERMOUNT_DIR=\"/usr/bin\" -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26   -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -MT iconv.lo -MD -MP -MF .deps/iconv.Tpo -c -o iconv.lo `test -f 'modules/iconv.c' || echo './'`modules/iconv.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../include -I../include -DFUSERMOUNT_DIR=\"/usr/bin\" -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26 -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -MT iconv.lo -MD -MP -MF .deps/iconv.Tpo -c modules/iconv.c  -fPIC -DPIC -o .libs/iconv.o
mv -f .deps/iconv.Tpo .deps/iconv.Plo
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../include  -I../include -DFUSERMOUNT_DIR=\"/usr/bin\" -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26   -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -MT mount.lo -MD -MP -MF .deps/mount.Tpo -c -o mount.lo mount.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../include -I../include -DFUSERMOUNT_DIR=\"/usr/bin\" -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26 -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -MT mount.lo -MD -MP -MF .deps/mount.Tpo -c mount.c  -fPIC -DPIC -o .libs/mount.o
mv -f .deps/mount.Tpo .deps/mount.Plo
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I../include  -I../include -DFUSERMOUNT_DIR=\"/usr/bin\" -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26   -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -MT mount_util.lo -MD -MP -MF .deps/mount_util.Tpo -c -o mount_util.lo mount_util.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../include -I../include -DFUSERMOUNT_DIR=\"/usr/bin\" -D_FILE_OFFSET_BITS=64 -D_REENTRANT -DFUSE_USE_VERSION=26 -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -MT mount_util.lo -MD -MP -MF .deps/mount_util.Tpo -c mount_util.c  -fPIC -DPIC -o .libs/mount_util.o
mv -f .deps/mount_util.Tpo .deps/mount_util.Plo
/bin/bash ../libtool  --tag=CC   --mode=link gcc  -Wall -W -Wno-sign-compare -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings -g -O2 -fno-strict-aliasing -pthread -ldl   -version-number 2:9:3 -Wl,--version-script,./fuse_versionscript  -o libfuse.la -rpath /usr/lib fuse.lo fuse_kern_chan.lo fuse_loop.lo fuse_loop_mt.lo fuse_lowlevel.lo fuse_mt.lo fuse_opt.lo fuse_session.lo fuse_signals.lo buffer.lo cuse_lowlevel.lo helper.lo subdir.lo iconv.lo mount.lo mount_util.lo  
libtool: link: gcc -shared  -fPIC -DPIC  .libs/fuse.o .libs/fuse_kern_chan.o .libs/fuse_loop.o .libs/fuse_loop_mt.o .libs/fuse_lowlevel.o .libs/fuse_mt.o .libs/fuse_opt.o .libs/fuse_session.o .libs/fuse_signals.o .libs/buffer.o .libs/cuse_lowlevel.o .libs/helper.o .libs/subdir.o .libs/iconv.o .libs/mount.o .libs/mount_util.o   -ldl  -O2 -pthread -Wl,--version-script -Wl,./fuse_versionscript   -pthread -Wl,-soname -Wl,libfuse.so.2 -o .libs/libfuse.so.2.9.3
/usr/bin/ld: .libs/mount.o: relocation R_X86_64_32S against `.bss' can not be used when making a shared object; recompile with -fPIC
.libs/mount.o: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
make[1]: *** [libfuse.la] Error 1
make[1]: Leaving directory `/home/zermacr0yd/Downloads/fuse-2.9.3/lib'
make: *** [install-recursive] Error 

Now I recompiled and reconfigured using the command CFLAGS=-fPIC ./configure, then used the make install command again. This did not solve the problem. What I wonder is if the mount.o object that is created by the makefile is incompatible with my architecture. That is, this package is for 32bit architecture and my machine uses the x86_64 architecture. Anyone ever encountered this error before? Particularly with this package.

¿Fue útil?

Solución 2

So as it turns out, this was actually not an architecture error whatsoever. Nor was it even a config error for that matter. The problem was in the Makefile which was doing a dynamic link against statically defined archives(case 4).

So the way I solved it was to add the "-static" flags to the LDFLAGS in the makefile and FINALLY IT WORKED. w00t!w00t!

=))

I struggled with this for almost 2 weeks. Finally I can get some rest.

Otros consejos

I think your problem is the same nature as the following (though not the FUSE part):

ffmpeg install on CentOS 64-bit 'install with -fPIC' error

and the answer as discussed in above, is also listed below:

http://ubuntuforums.org/showthread.php?t=786095&page=53&p=8080679#post8080679

and as shown in the CFLAGS below:

https://groups.google.com/forum/#!topic/harbour-devel/D4FqsmACKAU

it is not necessary "CFLAGS" itself too.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top