| Summary: | net-fs/samba-3.0.28a emake python_ext failed | ||
|---|---|---|---|
| Product: | Gentoo Linux | Reporter: | Alexey Charkov <alchark> |
| Component: | Current packages | Assignee: | Gentoo's SAMBA Team <samba> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | amd64, holler.loudly |
| Priority: | High | ||
| Version: | unspecified | ||
| Hardware: | AMD64 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Package list: | Runtime testing required: | --- | |
| Attachments: | Complete build log | ||
|
Description
Alexey Charkov
2008-04-28 16:32:19 UTC
Could you post more of the build log, please? Created attachment 151256 [details]
Complete build log
There are no errors before this one, however.
Sorry for my non-English locale setting. The lines in Russian right before the error occurs are only warnings, not errors. They complain about incompatible pointer types, python/py_spoolss_common.c:30 stating 'incompatible pointer type in assignment' and others simply 'incompatible pointer type'. For what's it worth I can reproduce this, haven't looked better yet.. The problem is that samba issues controversial command:
gcc -pie -shared ...
What this command is supposed to build? Executable (-pie == Position Independent Executable)? Shared library (-shared == shared library, please)? gcc before 4.3 interprets it as shared library, gcc 4.3 thinks it's asked to build position independent executable.
Fixed this with dirty, dirty hack:
--- Makefile.in 2008-05-07 14:03:20.000000000 +0400
+++ Makefile.in 2008-05-07 13:38:43.000000000 +0400
@@ -1668,7 +1668,7 @@
fi
PYTHON_OBJS="$(PYTHON_OBJ)" \
PYTHON_CFLAGS="$(CFLAGS) $(CPPFLAGS) $(FLAGS)" \
- LIBS="$(LDFLAGS) $(LIBS) $(PASSDB_LIBS) $(IDMAP_LIBS) $(KRB5LIBS) $(LDAP_LIBS)" \
+ LIBS="`echo $(LDFLAGS) $(LIBS) $(PASSDB_LIBS) $(IDMAP_LIBS) $(KRB5LIBS) $(LDAP_LIBS) | sed -e s'+-pie ++'`" \
$(PYTHON) python/setup.py build
python_install: $(PYTHON_OBJ)
Don't know what is the good solution...
Thanks for the hint. ... and there is a nice way to solve it :-) (btw, your fix didn't work here since python seems to grab also the LDFLAGS env var which is being set by the Makefile) |