Make opens Android Studio

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

Make opens Android Studio

Sideboard
Hi,

I wanted to recompile part of the linux kernel on my Ubuntu 15.10. When
I execute make in /lib/modules/`uname -r`/build/, Android Studio opens
with three error windows:

Cannot find file '/usr/src/linux-headers-4.2.0-34-lowlatency/--64'
Cannot find file '/usr/src/linux-headers-4.2.0-34-lowlatency/-o'
Cannot find file '/usr/src/linux-headers-4.2.0-34-lowlatency/.5259.tmp'

Then a temporary file is shown in its editor:

        .file "null"
        .code16gcc
        .ident "GCC: (Ubuntu 5.2.1-22ubuntu2) 5.2.1 20151010"
        .section .note.GNU-stack,"",@progbits

When I close Android Studio, it reopens after a few seconds with the
same error windows and almost the same temporary file:

        .file "null"
        .ident "GCC: (Ubuntu 5.2.1-22ubuntu2) 5.2.1 20151010"
        .section .note.GNU-stack,"",@progbits

This repeats whenever Android Studio is closed.

----

I was not sure if this qualifies for a bug, so I'm writing on this list
first.
Why does Android Studio open at all? Is Studio supposed to "help" with
debugging whenever Make encounters an error? How can I disable that?

Thanks for the help!
Sideboard

_______________________________________________
Help-make mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-make
Reply | Threaded
Open this post in threaded view
|

Re: Make opens Android Studio

Paul Smith-20
On Sun, 2016-03-20 at 18:40 +0100, Sideboard wrote:
> Why does Android Studio open at all? Is Studio supposed to "help" with
> debugging whenever Make encounters an error? How can I disable that?

GNU make absolutely never invokes Android Studio.  It doesn't know
anything about Android Studio.

So, either you are using a different version of make or a modified GNU
make, or else the rule you're invoking is somehow running Android Studio
unexpectedly.

You don't show the command that make is invoking, only the error
messages, so there's no much we can tell you.  However, these errors:

> Cannot find file '/usr/src/linux-headers-4.2.0-34-lowlatency/--64'
> Cannot find file '/usr/src/linux-headers-4.2.0-34-lowlatency/-o'
> Cannot find file '/usr/src/linux-headers-4.2.0-34-lowlatency/.5259.tmp'

sure look to me like your command line is broken: these "files" like "-
-64", "-o", etc. all should be interpreted as options to some command,
not files.  So it's possible that something else that should be
interpreted as an option or file is being interpreted as a command, and
invoking Android Studio.


_______________________________________________
Help-make mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-make
Reply | Threaded
Open this post in threaded view
|

Re: Make opens Android Studio

Sideboard
On 20.03.2016 19:22, Paul Smith wrote:
> GNU make absolutely never invokes Android Studio.  It doesn't know
> anything about Android Studio.

Sorry, didn't mean to imply that.

> So, either you are using a different version of make or a modified GNU
> make, or else the rule you're invoking is somehow running Android Studio
> unexpectedly.
>
> You don't show the command that make is invoking, only the error
> messages, so there's no much we can tell you.

The command was a plain `make'. For the partial compilation I intend, it
will be `make M=/path/to/source/sound/usb' but Android Studio (AS) is
also opened with the plain command so I went with that for the initial
message.

> However, these errors:
>
>> > Cannot find file '/usr/src/linux-headers-4.2.0-34-lowlatency/--64'
>> > Cannot find file '/usr/src/linux-headers-4.2.0-34-lowlatency/-o'
>> > Cannot find file '/usr/src/linux-headers-4.2.0-34-lowlatency/.5259.tmp'
> sure look to me like your command line is broken: these "files" like "-
> -64", "-o", etc. all should be interpreted as options to some command,
> not files.  So it's possible that something else that should be
> interpreted as an option or file is being interpreted as a command, and
> invoking Android Studio.

That's what I was thinking, too. Though I have no idea how that could
be. Even with AS not in the PATH it gets opened (it's installed in a
subfolder of HOME).

----

I executed `make -d' to get some debugging information:

GNU Make 4.0
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Reading makefiles...
Reading makefile 'Makefile'...
Reading makefile 'scripts/Kbuild.include' (search path) (no ~ expansion)...
Reading makefile 'include/config/auto.conf' (search path) (don't care)
(no ~ expansion)...
Reading makefile 'include/config/auto.conf.cmd' (search path) (don't
care) (no ~ expansion)...
Reading makefile 'arch/x86/Makefile' (search path) (no ~ expansion)...

After that I get the AS opening loop until I cancel with CTRL+C.
Then I renamed the AS directory and repeated the command; it now
continues onward and compiles as expected:

... [same as before] ...
Reading makefile 'arch/x86/Makefile' (search path) (no ~ expansion)...
arch/x86/Makefile:138: CONFIG_X86_X32 enabled but no binutils support
Makefile:669: Cannot use CONFIG_CC_STACKPROTECTOR_STRONG:
-fstack-protector-strong not supported by compiler
Reading makefile 'scripts/Makefile.kasan' (search path) (no ~ expansion)...
Reading makefile 'scripts/Makefile.extrawarn' (search path) (no ~
expansion)...
Updating makefiles....
... [continue compiling] ...

So now I at least know a hotfix and can compile but this behavior still
baffles me.

Anyway, thanks for your help!
Sideboard

_______________________________________________
Help-make mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-make
Reply | Threaded
Open this post in threaded view
|

Re: Make opens Android Studio

Bob Proulx
Sideboard wrote:
> Paul Smith wrote:
> > You don't show the command that make is invoking, only the error
> > messages, so there's no much we can tell you.
>
> The command was a plain `make'.

The command you invoked from the command line is not "the command that
make is invoking".  You are invoking 'make'.  The command that make is
invoking is configured in the Makefile that tells make what to do.  It
is the Makefile information which is missing.

> For the partial compilation I intend, it
> will be `make M=/path/to/source/sound/usb' but Android Studio (AS) is
> also opened with the plain command so I went with that for the initial
> message.

An error in the make rules breaking an assembler call $(AS) and
invoking "AS" instead of the value of AS?  Just guessing.

Bob


_______________________________________________
Help-make mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-make
Reply | Threaded
Open this post in threaded view
|

Re: Make opens Android Studio

Sideboard
Hy!

On 21.03.2016 21:47, Bob Proulx wrote:
> The command you invoked from the command line is not "the command that
> make is invoking".  You are invoking 'make'.  The command that make is
> invoking is configured in the Makefile that tells make what to do.  It
> is the Makefile information which is missing.

Sorry, I misunderstood that.

>> > For the partial compilation I intend, it
>> > will be `make M=/path/to/source/sound/usb' but Android Studio (AS) is
>> > also opened with the plain command so I went with that for the initial
>> > message.
> An error in the make rules breaking an assembler call $(AS) and
> invoking "AS" instead of the value of AS?  Just guessing.

That is a very good guess. I thought I had that covered when commenting
out an alias 'as' in my .bashrc. But I just found a symlink $HOME/bin/as
pointing to the Android Studio executable. When I rename it, `make'
compiles again.

I thought I found the culprit in the initial Makefile: AS =
$(CROSS_COMPILE)as
But even when changing that to the full path the error occurs. Turns out
`gcc' calls `as' and thereby executes the symlinked Android Studio. This
also works with an alias 'as'.

I'm not sure whether that is the intended behavior to keep it
customizable or if some edge-case was overlooked. Should I report that
to the gcc list?

Thanks a lot for your help!
Sideboard

_______________________________________________
Help-make mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-make
Reply | Threaded
Open this post in threaded view
|

Re: Make opens Android Studio

Bob Proulx
Sideboard wrote:
> Bob Proulx wrote:
> > An error in the make rules breaking an assembler call $(AS) and
> > invoking "AS" instead of the value of AS?  Just guessing.
>
> That is a very good guess. I thought I had that covered when commenting
> out an alias 'as' in my .bashrc.

Just fyi but shell aliases are only for your command line.  They won't
be available to programs you are launching.  Programs will only be
able to access things found on your $PATH.

> But I just found a symlink $HOME/bin/as pointing to the Android
> Studio executable. When I rename it, `make' compiles again.

Yay!  So the problem was that you has a different "as" that shadowed
and overrode the /usr/bin/as one.  Of course being able to do that so
as to be able to use a newer gcc suite for example is a good thing.
But when the association isn't immediately obvious (such as what does
make have to do with android studio?) then it can be surprising.

I once knew someone who made an "install file" alias to "if" in their
bashrc file.  And then was surprised to find that later control flow
in their bashrc file of 'if ...; then ...; fi' no longer worked. :-)

> I thought I found the culprit in the initial Makefile: AS =
> $(CROSS_COMPILE)as But even when changing that to the full path the
> error occurs. Turns out `gcc' calls `as' and thereby executes the
> symlinked Android Studio.

Yep.  Glad you figured it out.

> This also works with an alias 'as'.

Are you sure?  Bash aliases are specific to bash interactive shells.

> I'm not sure whether that is the intended behavior to keep it
> customizable or if some edge-case was overlooked. Should I report that
> to the gcc list?

The gcc suite gcc, cpp, ld, as, and others, not a complete list, too.
If any of those are overridden then the overridden versions will be
called instead.  This is a very useful feature.

I am not sure I have completely understood the nuance of your question
but I don't see any behavior that is unexpected here.

It might be useful for you to create a very small C program and
compile it with gcc -v to see all of the processing that goes on under
the gcc hood.  Some things have become more internal to compilers for
performance reasons but in the classic case one expects to see it
invoke a C-preprocessor (cpp), followed by compiler (cc1) to assembly
language, followed by assembler (as) to assemble to machine code,
followed by link-editor (ld) to link into an executable or library.
Implementations differ on exact details.

Bob

$ gcc -v -o hello hello.c
...no output...adding -v for verbose information...
$ gcc -v -o hello hello.c
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 5.3.1-12' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --with-arch-32=i586 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 5.3.1 20160316 (Debian 5.3.1-12)
COLLECT_GCC_OPTIONS='-v' '-o' 'hello' '-mtune=generic' '-march=x86-64'
 /usr/lib/gcc/x86_64-linux-gnu/5/cc1 -quiet -v -imultiarch x86_64-linux-gnu hello.c -quiet -dumpbase hello.c -mtune=generic -march=x86-64 -auxbase hello -version -o /tmp/ccVPgzPE.s
GNU C11 (Debian 5.3.1-12) version 5.3.1 20160316 (x86_64-linux-gnu)
        compiled by GNU C version 5.3.1 20160316, GMP version 6.1.0, MPFR version 3.1.4, MPC version 1.0.3
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/5/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc/x86_64-linux-gnu/5/include
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include
End of search list.
GNU C11 (Debian 5.3.1-12) version 5.3.1 20160316 (x86_64-linux-gnu)
        compiled by GNU C version 5.3.1 20160316, GMP version 6.1.0, MPFR version 3.1.4, MPC version 1.0.3
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 81f31b6fda39aed0d8a25d5b883a3885
COLLECT_GCC_OPTIONS='-v' '-o' 'hello' '-mtune=generic' '-march=x86-64'
 as -v --64 -o /tmp/cckV3QSK.o /tmp/ccVPgzPE.s
GNU assembler version 2.26 (x86_64-linux-gnu) using BFD version (GNU Binutils for Debian) 2.26
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-o' 'hello' '-mtune=generic' '-march=x86-64'
 /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/cc5RmrXQ.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o hello /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. /tmp/cckV3QSK.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o

_______________________________________________
Help-make mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-make
Reply | Threaded
Open this post in threaded view
|

Re: Make opens Android Studio

Sideboard
On 22.03.2016 01:08, Bob Proulx wrote:
>> > This also works with an alias 'as'.
> Are you sure?  Bash aliases are specific to bash interactive shells.

I just rechecked and apparently was wrong on that part. Probably
confused something last time with all the back-and-forth renaming and
realiasing.

>> > I'm not sure whether that is the intended behavior to keep it
>> > customizable or if some edge-case was overlooked. Should I report that
>> > to the gcc list?
> The gcc suite gcc, cpp, ld, as, and others, not a complete list, too.
> If any of those are overridden then the overridden versions will be
> called instead.  This is a very useful feature.
>
> I am not sure I have completely understood the nuance of your question
> but I don't see any behavior that is unexpected here.

I was surprised that a symlink from months ago that I didn't even know
about anymore changed the behavior of the compilation in such a dramatic
way while it was not obvious that this was the case. When creating the
symlink I probably didn't think about that there might be an important
program which would be overridden. Of course, it does make sense that
the PATH is used for all the different parts because maybe I really
wanted to switch my /usr/bin/as with a superior $HOME/bin/as, that's
what I meant with "customizable".

In my mind it might also have been the case that the different
compilation tools, while being separate programs but in the same suite,
are sticking together so that `gcc' always calls its very own `as'. You
would still be able to customize but only by exchanging the complete
package of `cpp', `gcc', `as', `ld' etc. In that case, the `as' being
overridden would have been unintended.

> It might be useful for you to create a very small C program and
> compile it with gcc -v to see all of the processing that goes on under
> the gcc hood.  Some things have become more internal to compilers for
> performance reasons but in the classic case one expects to see it
> invoke a C-preprocessor (cpp), followed by compiler (cc1) to assembly
> language, followed by assembler (as) to assemble to machine code,
> followed by link-editor (ld) to link into an executable or library.
> Implementations differ on exact details.

That's how I found out that `gcc' calls `as'. It even works without any
contents in the source code file. The problem in the `make' process
occurred when it made a "try-run" whether a compilation with a specific
compiler option runs without an error. The command was (cut down to the
essentials):
gcc -x c -c /dev/null -o "$TEMP_FILE"

Here '-x c' is necessary since gcc cannot guess from the file extension
what needs to be done. I repeated that by hand and included the -v
option. That's where I found the `as'.

Thanks again for all the help! I certainly will be more careful with the
choice of names in the future when I create files in the PATH. ;-)

Sideboard

_______________________________________________
Help-make mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-make
Reply | Threaded
Open this post in threaded view
|

Re: Make opens Android Studio

Rakesh Sharma-6
.

________________________________________
From: help-make-bounces+sharma__r=[hidden email] <help-make-bounces+sharma__r=[hidden email]> on behalf of Sideboard <[hidden email]>
Sent: Tuesday, March 22, 2016 1:25 AM
To: Bob Proulx
Cc: [hidden email]
Subject: Re: Make opens Android Studio

On 22.03.2016 01:08, Bob Proulx wrote:
>> > This also works with an alias 'as'.
> Are you sure?  Bash aliases are specific to bash interactive shells.

I just rechecked and apparently was wrong on that part. Probably
confused something last time with all the back-and-forth renaming and
realiasing.

>> > I'm not sure whether that is the intended behavior to keep it
>> > customizable or if some edge-case was overlooked. Should I report that
>> > to the gcc list?
> The gcc suite gcc, cpp, ld, as, and others, not a complete list, too.
> If any of those are overridden then the overridden versions will be
> called instead.  This is a very useful feature.
>
> I am not sure I have completely understood the nuance of your question
> but I don't see any behavior that is unexpected here.

I was surprised that a symlink from months ago that I didn't even know
about anymore changed the behavior of the compilation in such a dramatic
way while it was not obvious that this was the case. When creating the
symlink I probably didn't think about that there might be an important
program which would be overridden. Of course, it does make sense that
the PATH is used for all the different parts because maybe I really
wanted to switch my /usr/bin/as with a superior $HOME/bin/as, that's
what I meant with "customizable".

In my mind it might also have been the case that the different
compilation tools, while being separate programs but in the same suite,
are sticking together so that `gcc' always calls its very own `as'. You
would still be able to customize but only by exchanging the complete
package of `cpp', `gcc', `as', `ld' etc. In that case, the `as' being
overridden would have been unintended.

> It might be useful for you to create a very small C program and
> compile it with gcc -v to see all of the processing that goes on under
> the gcc hood.  Some things have become more internal to compilers for
> performance reasons but in the classic case one expects to see it
> invoke a C-preprocessor (cpp), followed by compiler (cc1) to assembly
> language, followed by assembler (as) to assemble to machine code,
> followed by link-editor (ld) to link into an executable or library.
> Implementations differ on exact details.

That's how I found out that `gcc' calls `as'. It even works without any
contents in the source code file. The problem in the `make' process
occurred when it made a "try-run" whether a compilation with a specific
compiler option runs without an error. The command was (cut down to the
essentials):
gcc -x c -c /dev/null -o "$TEMP_FILE"

Here '-x c' is necessary since gcc cannot guess from the file extension
what needs to be done. I repeated that by hand and included the -v
option. That's where I found the `as'.

Thanks again for all the help! I certainly will be more careful with the
choice of names in the future when I create files in the PATH. ;-)

Sideboard

_______________________________________________
Help-make mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-make

_______________________________________________
Help-make mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-make
Reply | Threaded
Open this post in threaded view
|

Re: Make opens Android Studio

Rakesh Sharma-6
In reply to this post by Sideboard
Did you check your PATH variable? Why should a symlink in your home/bin to as modify the behavior
of your makefile unless home/bin is included in your PATH and that too earlier than the regular /usr/bin
etc. directories.

________________________________________
From: help-make-bounces+sharma__r=[hidden email] <help-make-bounces+sharma__r=[hidden email]> on behalf of Sideboard <[hidden email]>
Sent: Tuesday, March 22, 2016 1:25 AM
To: Bob Proulx
Cc: [hidden email]
Subject: Re: Make opens Android Studio

On 22.03.2016 01:08, Bob Proulx wrote:
>> > This also works with an alias 'as'.
> Are you sure?  Bash aliases are specific to bash interactive shells.

I just rechecked and apparently was wrong on that part. Probably
confused something last time with all the back-and-forth renaming and
realiasing.

>> > I'm not sure whether that is the intended behavior to keep it
>> > customizable or if some edge-case was overlooked. Should I report that
>> > to the gcc list?
> The gcc suite gcc, cpp, ld, as, and others, not a complete list, too.
> If any of those are overridden then the overridden versions will be
> called instead.  This is a very useful feature.
>
> I am not sure I have completely understood the nuance of your question
> but I don't see any behavior that is unexpected here.

I was surprised that a symlink from months ago that I didn't even know
about anymore changed the behavior of the compilation in such a dramatic
way while it was not obvious that this was the case. When creating the
symlink I probably didn't think about that there might be an important
program which would be overridden. Of course, it does make sense that
the PATH is used for all the different parts because maybe I really
wanted to switch my /usr/bin/as with a superior $HOME/bin/as, that's
what I meant with "customizable".

In my mind it might also have been the case that the different
compilation tools, while being separate programs but in the same suite,
are sticking together so that `gcc' always calls its very own `as'. You
would still be able to customize but only by exchanging the complete
package of `cpp', `gcc', `as', `ld' etc. In that case, the `as' being
overridden would have been unintended.

> It might be useful for you to create a very small C program and
> compile it with gcc -v to see all of the processing that goes on under
> the gcc hood.  Some things have become more internal to compilers for
> performance reasons but in the classic case one expects to see it
> invoke a C-preprocessor (cpp), followed by compiler (cc1) to assembly
> language, followed by assembler (as) to assemble to machine code,
> followed by link-editor (ld) to link into an executable or library.
> Implementations differ on exact details.

That's how I found out that `gcc' calls `as'. It even works without any
contents in the source code file. The problem in the `make' process
occurred when it made a "try-run" whether a compilation with a specific
compiler option runs without an error. The command was (cut down to the
essentials):
gcc -x c -c /dev/null -o "$TEMP_FILE"

Here '-x c' is necessary since gcc cannot guess from the file extension
what needs to be done. I repeated that by hand and included the -v
option. That's where I found the `as'.

Thanks again for all the help! I certainly will be more careful with the
choice of names in the future when I create files in the PATH. ;-)

Sideboard

_______________________________________________
Help-make mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-make

_______________________________________________
Help-make mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-make