Skip to contentSkip to conversation

Build Problems of ppp-2.4.3 against linux-2.4.29-pre2

DISCUSSION Andreas Mattheiss 2 participants 3 messages Jan 9, 2005 – Jan 28, 2005 PPP protocol drivers and compressors

lore
Share & tools
lore
#0 lore raw

Hello,

I'm trying to build ppp-2.4.3 on a linux system, kernel 2.4.29-pre2, but I'm getting gobs of errors when building in the pppd subdirectory. The final words are:

cc -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DMAXOCTETS -I/overspill/sekundaer/include -I/usr/include/libpng12 -I/usr/src/linux/include -c -o sys-linux.o sys-linux.c
In file included from /usr/src/linux/include/linux/init.h:5,

                 from /usr/src/linux/include/net/inetpeer.h:13,
                 from /usr/src/linux/include/net/route.h:29,
                 from sys-linux.c:109:

/usr/src/linux/include/linux/compiler.h:25: warning: _attribute_used__' redefined
/usr/include/sys/cdefs.h:195: warning: this is the location of the previous definition
In file included from /usr/src/linux/include/linux/signal.h:4,

                 from /usr/src/linux/include/linux/sched.h:26,
                 from /usr/src/linux/include/net/inetpeer.h:14,
                 from /usr/src/linux/include/net/route.h:29,
                 from sys-linux.c:109:

/usr/src/linux/include/asm/signal.h:26: warning: SIG' redefined /usr/include/signal.h:185: warning: this is the location of the previous definition
/usr/src/linux/include/asm/signal.h:70: warning: IGRTMIN' redefined /usr/include/bits/signum.h:72: warning: this is the location of the previous definition
/usr/src/linux/include/asm/signal.h:71: warning: IGRTMAX' redefined /usr/include/bits/signum.h:73: warning: this is the location of the previous definition
/usr/src/linux/include/asm/signal.h:87: warning: A_NOCLDSTOP' redefined /usr/include/bits/sigaction.h:54: warning: this is the location of the previous definition
/usr/src/linux/include/asm/signal.h:88: warning: A_NOCLDWAIT' redefined /usr/include/bits/sigaction.h:55: warning: this is the location of the previous definition
/usr/src/linux/include/asm/signal.h:89: warning: A_SIGINFO' redefined /usr/include/bits/sigaction.h:57: warning: this is the location of the previous definition

.... more of the like ...

/usr/src/linux/include/net/route.h: At top level:
/usr/src/linux/include/net/route.h:161: parse error before os' /usr/src/linux/include/net/route.h: In function t_tos2priority':
/usr/src/linux/include/net/route.h:163: os' undeclared (first use in this function)
/usr/src/linux/include/net/route.h:164: warning: control reaches end of non-void function
/usr/src/linux/include/net/route.h: At top level:
/usr/src/linux/include/net/route.h:166: parse error before 32'
/usr/src/linux/include/net/route.h: In function p_route_connect':
/usr/src/linux/include/net/route.h:169: p' undeclared (first use in this function)
/usr/src/linux/include/net/route.h:169: st' undeclared (first use in this function)
/usr/src/linux/include/net/route.h:169: rc' undeclared (first use in this function)
/usr/src/linux/include/net/route.h:169: os' undeclared (first use in this function)
/usr/src/linux/include/net/route.h:169: f' undeclared (first use in this function)
In file included from sys-linux.c:124:
pppd.h: At top level:
pppd.h:512: nfo' redeclared as different kind of symbol
/usr/src/linux/include/net/dst.h:66: previous declaration of nfo'
pppd.h:515: rror' redeclared as different kind of symbol /usr/src/linux/include/net/dst.h:52: previous declaration of rror' pppd.h:603: tput' redeclared as different kind of symbol /usr/src/linux/include/net/dst.h:58: previous declaration of tput' {standard input}: Assembler messages:
{standard input}:9785: Error: symbol tput' is already defined
make: *** [sys-linux.o] Fehler 1

I am not an expert, but it looks to me as if the header files from libc and the kernel are somehow jumbled up. I did compile libc about a year ago, keeping the (then up to date) kernel headers in /usr/include/linux/include, where they remain until now. I didn't overwrite this with the current headers.

Please let me know what I'm doing wrong here.

TIA
Andreas

#1 lore raw
Quoted 3 lines · Andreas Mattheiss

I'm trying to build ppp-2.4.3 on a linux system, kernel 2.4.29-pre2, but I'm getting gobs of errors when building in the pppd subdirectory. The final words are:

This doesn't look at all like a ppp-2.4.3 problem. It looks like a problem with your compiler and/or system header files.

Quoted 4 lines

/usr/src/linux/include/linux/compiler.h:25: warning: _attribute_used__' redefined
/usr/include/sys/cdefs.h:195: warning: this is the location of the previous definition

Neither of those files comes with ppp-2.4.3.

Quoted 3 lines

/usr/src/linux/include/asm/signal.h:26: warning: SIG' redefined /usr/include/signal.h:185: warning: this is the location of the previous definition

Nor do those.

Quoted 6 lines

pppd.h:512: nfo' redeclared as different kind of symbol
/usr/src/linux/include/net/dst.h:66: previous declaration of nfo'
pppd.h:515: rror' redeclared as different kind of symbol /usr/src/linux/include/net/dst.h:52: previous declaration of rror' pppd.h:603: tput' redeclared as different kind of symbol /usr/src/linux/include/net/dst.h:58: previous declaration of tput'

That doesn't match the net/dst.h I've seen on Linux.

Quoted 2 lines

I am not an expert, but it looks to me as if the header files from libc and the kernel are somehow jumbled up.

Yes.

Quoted 6 lines

I did compile libc about a year ago,
keeping the (then up to date) kernel headers in /usr/include/linux/include, where they remain until now. I didn't overwrite this with the current headers.

Please let me know what I'm doing wrong here.

At a guess, this list isn't right:

-I/overspill/sekundaer/include -I/usr/include/libpng12 -I/usr/src/linux/include

Where did that list come from?

Signature · 1 line
James Carlson                                 <[email protected]>
#2 lore raw
In reply to Andreas Mattheiss

Hello,

thanks for the reply, but the (manually added) include-path was not the cause for the build woes.

I discovered that when I do this modification things build ok:

sys-linux.c.0003.clean renamed from sys-linux.c +8 -0
@@ -102,11 +102,19 @@
 #define MAX_ADDR_LEN 7
 #endif
 
+#if __GLIBC__ >= 2
+#include <asm/types.h>		/* glibc 2 conflicts with linux/types.h */
+#include <net/if.h>
+#include <net/if_arp.h>
+#include <net/route.h>
+#include <netinet/if_ether.h>
+#else
 #include <linux/types.h>
 #include <linux/if.h>
 #include <linux/if_arp.h>
 #include <linux/route.h>
 #include <linux/if_ether.h>
+#endif
 #include <netinet/in.h>
 #include <arpa/inet.h>
 

Only warning issued is

cc -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DMAXOCTETS -I/overspill/sekundaer/include -I/usr/include/libpng12 -c -o sys-linux.o sys-linux.c
In file included from /usr/include/linux/if_arp.h:26,

                 from sys-linux.c:107:

/usr/include/linux/netdevice.h:75: warning: AX_ADDR_LEN' redefined sys-linux.c:102: warning: this is the location of the previous definition cc -O2 -pipe -Wall -g -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -I../include -DCHAPMS=1 -DMPPE=1 -DHAS_SHADOW -DHAVE_CRYPT_H=1 -DUSE_CRYPT=1 -DHAVE_MULTILINK -DUSE_TDB=1 -DPLUGIN -DMAXOCTETS -L/overspill/sekundaer/lib -Wl,-E -o pppd main.o magic.o fsm.o lcp.o ipcp.o upap.o chap-new.o md5.o ccp.o ecp.o auth.o options.o demand.o utils.o sys-linux.o ipxcp.o tty.o eap.o chap-md5.o md4.o chap_ms.o sha1.o pppcrypt.o multilink.o tdb.o spinlock.o -lcrypt -ldl

Final link works ok. As it looks there is a big confusion in that the <something/header.h> and <linux/header.h> includes are invoked inconsitently. Forcing the <linux/header.h> apparently fixes this.

However, I am not very happy with this, since I don't think I should need to fiddle with the source like this. Question 1: Does the thus built pppd do its job correctly? Question 2: Why am I the only poor sod for whom it didn't work out of the box?

Regards
Andreas

Am Mon, Jan 10, 2005 at 02:18:14PM -0500 schrieb James Carlson:

Quoted 55 lines
Quoted 3 lines · Andreas Mattheiss

I'm trying to build ppp-2.4.3 on a linux system, kernel 2.4.29-pre2, but I'm getting gobs of errors when building in the pppd subdirectory. The final words are:

This doesn't look at all like a ppp-2.4.3 problem. It looks like a problem with your compiler and/or system header files.

Quoted 4 lines

/usr/src/linux/include/linux/compiler.h:25: warning: _attribute_used__' redefined
/usr/include/sys/cdefs.h:195: warning: this is the location of the previous definition

Neither of those files comes with ppp-2.4.3.

Quoted 3 lines

/usr/src/linux/include/asm/signal.h:26: warning: SIG' redefined /usr/include/signal.h:185: warning: this is the location of the previous definition

Nor do those.

Quoted 6 lines

pppd.h:512: nfo' redeclared as different kind of symbol
/usr/src/linux/include/net/dst.h:66: previous declaration of nfo'
pppd.h:515: rror' redeclared as different kind of symbol /usr/src/linux/include/net/dst.h:52: previous declaration of rror' pppd.h:603: tput' redeclared as different kind of symbol /usr/src/linux/include/net/dst.h:58: previous declaration of tput'

That doesn't match the net/dst.h I've seen on Linux.

Quoted 2 lines

I am not an expert, but it looks to me as if the header files from libc and the kernel are somehow jumbled up.

Yes.

Quoted 6 lines

I did compile libc about a year ago,
keeping the (then up to date) kernel headers in /usr/include/linux/include, where they remain until now. I didn't overwrite this with the current headers.

Please let me know what I'm doing wrong here.

At a guess, this list isn't right:

-I/overspill/sekundaer/include -I/usr/include/libpng12 -I/usr/src/linux/include

Where did that list come from?

Signature · 5 lines
James Carlson                                 <[email protected]>
-
To unsubscribe from this list: send the line "unsubscribe linux-ppp" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html